1. 绘制一个二维随机漫步的图形

直接上代码:

%pylab inline
nsteps = 1000
draws = np.random.randint(-1,2,size=(2,nsteps))
walks = draws.cumsum(1)
plot(walks[0,:],walks[1,:]);
Populating the interactive namespace from numpy and matplotlib

先生成 1000 个随机漫步方向,方向是从 {-1, 0, 1} 中随机挑两个值(两个值也可相等)作为移动方向,所以每次移动有 3×3=9 种选择,初始位置也是 9 种选择,cumsum 函数是将每次的移动累加,最后通过 plot 画出来。

2. 画出一个二次函数,同时画出梯形法求积分时的各个梯形

这里使用 IPython.html.widgets 模块中的 interact 函数,绘制一个交互式的函数图形。可以手动调整梯形个数,看到函数面积随梯形个数而变化。

def Quadratic(x): # 定义二次函数
return 2*x**2 +3*x +4 import numpy as np
import matplotlib.pyplot as plt
from IPython.html.widgets import interact def plot_ladder(laddernum):
x = np.linspace(-5, 5, num=100)
y = Quadratic(x)
plot(x,y) # 先画出原函数的图形 a = np.linspace(-5, 5, num=laddernum)
for i in range(laddernum):
plot([a[i],a[i]],[0,Quadratic(a[i])],color="black") # 画梯形的上底和下底 ladders = [];
for i in range(laddernum):
ladders.append([a[i],Quadratic(a[i])]) # 因为梯形的腰是呈一条直线,所以这里存下各点坐标 npladders = np.array(ladders)
plot(npladders[:,0],npladders[:,1]); # 把梯形的斜腰连起来 interact(plot_ladder, laddernum=(1, 30, 1)) # 滑动模块在 1 和 30 之间变化,变化区间是 1

3. 研究 IPython.html.widgets 模块中的 interact 函数,绘制一个交互式的函数图形

2014 年 4 月,IPython 增加了 interactive widgets,提供了可以交互的界面组件,如下例:

from IPython.html.widgets import interact
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
def plot_sine(n):
x = np.arange(0, 20, 0.1)
y = np.sin(x/n)
plot(x,y)
interact(plot_sine, n=(1, 30, 0.1))

还可以这样用。

from IPython.html.widgets import interact, IntSlider # 把之前的画图函数改写成依赖于参数的函数
# 引入 interact 模块
from IPython.html.widgets import interact, IntSlider # 把之前的画图函数改写成依赖于参数的函数
def test_interact(min_, max_, steps_):
x = np.linspace(min_, max_, steps_)
y = np.sin(x)
z = np.cos(x)
plot(x, y)
scatter(x, y) # 使用 interact 来交互式的调试参数
interact(test_interact,
# 为每一个参数设定一个 interact 控件
min_=IntSlider(min=1, # 最小值
max=10, # 最大值
step=1, # 每次调节的步长
value=1), # 初始值
max_=IntSlider(min=10, max=20, step=1, value=10),
steps_=IntSlider(min=10, max=100, step=10, value=50))

4. Seaborn

Matplotlib 是 Python 主要的绘图库,但它本身很复杂,它的图经过大量的调整才能变精致。因此,作为替代,推荐使用Seaborn。Seaborn本质上使用Matplotlib作为核心库(就像Pandas对NumPy一样)。它可以:

  • 默认情况下就能创建赏心悦目的图表。
  • 创建具有统计意义的图。
  • 能理解pandas的DataFrame类型,所以它们一起可以很好地工作。
import seaborn as sns

# Load one of the data sets that come with seaborn
tips = sns.load_dataset("tips") sns.jointplot("total_bill", "tip", tips, kind='reg');

参考资料

Matplotlib 练习题的更多相关文章

  1. pandas补充(其二)与matplotlib补充

    今日内容概要 pandas补充知识(2) matplotlib补充知识 今日内容详细 pandas补充 数据汇总 # 数据透视表 pd.pivot_table(data,values-None,ind ...

  2. Linux基础练习题(二)

    Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...

  3. python安装numpy、scipy和matplotlib等whl包的方法

    最近装了python和PyCharm开发环境,但是在安装numpy和matplotlib等包时出现了问题,现总结一下在windows平台下的安装方法. 由于现在找不到了工具包新版本的exe文件,所以采 ...

  4. shell 脚本之 shell 练习题汇总

    整理了一些 shell 相关的练习题,记录到这里. 1. 请按照这样的日期格式 xxxx-xx-xx 每日生成一个文件,例如:今天生成的文件为 2013-09-23.log, 并且把磁盘的使用情况写到 ...

  5. matplotlib 高级用法实例--共享x轴

    http://localhost:8888/notebooks/duanqs/matplotlib_advanced_example.ipynb 我不会弄呀, 刚才从matplotlib文档里吧示例用 ...

  6. MySQL练习题

    MySQL练习题 一.表关系 请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 3.查询平均成绩大于60分的同学的学号和平均成 ...

  7. MySQL练习题参考答案

    MySQL练习题参考答案 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 思路: 获取所有有生物课程的人(学号,成绩) - 临时表 获取所有有物理课程的人(学号,成绩) - 临时表 根据[ ...

  8. Python matplotlib笔记

    可视化的工具有很多,如Tableau,各种JS框架,我个人感觉应该是学JS最好,因为JS不需要环境,每个电脑都有浏览器,而像matplotlib需要Python这样的开发环境,还是比较麻烦的,但是毕竟 ...

  9. Matplotlib——第一章轻松画个图

    首先安装matplotlib,使用pip install matplotlib.安装完成后在python的命令行敲入import matplotlib,如果没问题,说明安装成功可以开始画图了. 看好了 ...

随机推荐

  1. 关于wcf三大工具的使用(wsdl.exe svcutil.exe disco.exe)

    首先,我们必须创建一个wcf服务.并部署到IIS中.这里我已经将一个StudentService服务部署到我自己的电脑了. (1)svcutil.exe svcutil.exe工具的作用是通过服务地址 ...

  2. 【BZOJ5008】方师傅的房子 三角剖分

    [BZOJ5008]方师傅的房子 Description 方师傅来到了一个二维平面.他站在原点上,觉得这里风景不错,就建了一个房子.这个房子是n个点的凸多边形,原点一定严格在凸多边形内部.有m个人也到 ...

  3. Android中Log机制详解

    Android中Log的输出有如下几种: Log.v(String tag, String msg);        //VERBOSELog.d(String tag, String msg);   ...

  4. onethink判断是否是手机访问?

    第一步:找到:Application / Common / Common / function.php 添加判断是否是手机访问的代码: /** * 判断当前访问的用户是 PC端 还是 手机端 返回tr ...

  5. javascript飞机大战-----006创建敌机

    先写一个敌机类 /* 创建敌机: */ function Enemy(blood,speed,imgs){ //敌机left this.left = 0; //敌机top this.top = 0; ...

  6. 8.ajax查询数据

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  7. RedisDesktopManager 打开报0xc000007b程序错误

    RedisDesktopManager 是一个管理redis的工具,很好用,我的电脑可以安装0.8.3版的,最新版到0.9.4了,其中经典版本是0.8.8,可惜0.8.3版之后,我的电脑安装软件后,打 ...

  8. javascript 执行环境,作用域链和闭包

    首先看下这条语句: (function($) {…})(jQuery): 1.原理: function(arg){…}这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写上括号和实参的, ...

  9. handle exceptions, opening and closing database connections

    https://www.tutorialspoint.com/spring/spring_jdbc_framework.htm Spring - JDBC Framework Overview Whi ...

  10. Day01 html详解

      day01 html详解   1.html的简介     1.1 什么是html?         - HyperText Markup Language:超文本标记语言,网页语言         ...