Matplotlib 练习题
2016-05-27 11:00
681 查看
1. 绘制一个二维随机漫步的图形
直接上代码:
先生成 1000 个随机漫步方向,方向是从 {-1, 0, 1} 中随机挑两个值(两个值也可相等)作为移动方向,所以每次移动有 3×3=9 种选择,初始位置也是 9 种选择,cumsum 函数是将每次的移动累加,最后通过 plot 画出来。
2. 画出一个二次函数,同时画出梯形法求积分时的各个梯形
这里使用 IPython.html.widgets 模块中的 interact 函数,绘制一个交互式的函数图形。可以手动调整梯形个数,看到函数面积随梯形个数而变化。
3. 研究 IPython.html.widgets 模块中的 interact 函数,绘制一个交互式的函数图形
2014 年 4 月,IPython 增加了 interactive widgets,提供了可以交互的界面组件,如下例:
还可以这样用。
4. Seaborn
Matplotlib 是 Python 主要的绘图库,但它本身很复杂,它的图经过大量的调整才能变精致。因此,作为替代,推荐使用Seaborn。Seaborn本质上使用Matplotlib作为核心库(就像Pandas对NumPy一样)。它可以:
默认情况下就能创建赏心悦目的图表。
创建具有统计意义的图。
能理解pandas的DataFrame类型,所以它们一起可以很好地工作。
参考资料
用 IPython notebook + nvd3 实现交互式调试
Python 和数据科学的起步指南
直接上代码:
%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');
参考资料
用 IPython notebook + nvd3 实现交互式调试
Python 和数据科学的起步指南
相关文章推荐
- Matplotlib 学习笔记
- PHP
- XAMPP的安装和PhpStrorm的配置
- H264编码 封装成MP4格式 视频流 RTP封包
- YII自定义小部件
- 向php提交数据及json
- YII XSS(跨站脚本攻击)
- Laravel工程搭建
- YII地址切换
- YII场景
- PhpStorm-XAMPP资料
- 一条命令搞定PHP安装
- php使用数组语法访问对象
- yii2中sphinx搜索 多条件选择搜索
- PHP数组重组
- TP:C74A0E73
- str_pad函数使用
- 15.php数据库抽象层PDO(四)
- thinkphp框架调用类不存在的方法
- 每天laravel-20160816| Container -19