matplotLib入门
来源:互联网 发布:武林外传 知乎精华 编辑:程序博客网 时间:2024/05/22 00:33
matplotLib入门
绘图是数据分析中重要的任务之一。
matplotlib API 入门
1.matplotlib API函数都位于matplotlib.pyplot模块中,通常的引入约定是:
import matplotlib.pyplot as plt
Figure和Subplot
matplotlib的图像都位于Figure中,如下方法创建一个新的Figure:
fig = plt.figure()fig.show()
这时候会弹出一个空窗口。plt.figure()有一些选项,比如figsize,可以确保当图片保存到磁盘时具有一定的大小和纵横比。通过plt.gcf()可以得到当前Figure的引用。
不能通过空Figure画图,必须用add_subplot创建一个或多个subplot才行。
ax1 = fig.add_subplot(2, 2, 1)
上面代码的意思是:图像应该是2 * 2的,且当前选中的是4个subplot的第一个(编号从1开始)。接着创建两个,
ax2 = fig.add_subplot(2, 2, 2)ax3 = fig.add_subplot(2, 2, 3)fig.show()
图像如下:
发出一条绘图命令:
plt.plot([1.5, 3.5, -2, 1.6])
会得到如下效果
from numpy.random import randnplt.plot(randn(50).cumsum(), 'k--')
‘k–’是一个线性选项,告诉matplotlib绘制黑色虚线图。上面那些由fig.add_subplot()所返回的对象是AxesSubplot对象,直接调用它们的实例方法就可以在其他空着的格子里面画图了。
plt.subplots()是一个更为简单的方法,他可以创建一个新的Figure,并且返回一个含有已创建的subplot对象的Numpy数组。
fig,axes = plt.subplots(2,3)In[4]: axesOut[4]: array([[<matplotlib.axes._subplots.AxesSubplot object at 0x049A3190>, <matplotlib.axes._subplots.AxesSubplot object at 0x04DD68F0>, <matplotlib.axes._subplots.AxesSubplot object at 0x04E5C710>], [<matplotlib.axes._subplots.AxesSubplot object at 0x04E97D90>, <matplotlib.axes._subplots.AxesSubplot object at 0x0738DDB0>, <matplotlib.axes._subplots.AxesSubplot object at 0x0741E4D0>]], dtype=object)
这是非常实用的,可以轻松地对axes进行索引,就像二维数组一样。例如,axes[0,1].
还可以通过sharex和sharey指定subplot应该具有相同的X轴或Y轴。在比较相同范围的数据时,也是非常实用的。
pyplot.subplots的选项:
参数 说明nrows subplot的行数ncols subplot的列数shareX 所有subplot应该使用相同的X轴刻度(调节xlim将会影响所有subplot)shareY 所有subplot应该使用相同的Y轴刻度(调节ylim将会影响所有subplot)subplot_kw 用于创建各subplot的关键字字典**fig_kw 创建figure时的其他关键字,如plt.subplots(2,2,figsize=(8,6))
调整subplot的间距
默认情况,matplotlib会在subplot外围留下一定的边距,并在subplot之间留下一定的间距。间距跟图像的高度和宽度有关。利用Figure的subplot_adjust方法可以轻而易举地修改间距,此外,它也是一个顶级函数:
subplots_adjust(left=None, bottom=None, right=None, top=None,wspace=None, hspace=None)
wspace和hspace用于控制宽度和高度的百分比,可以用作subplot之间的边距。
颜色、标记和线型
matplotlib的plot函数接受一组X和Y的坐标,还可以接受一个表示颜色和线型的字符串缩写。例如,根据X和y绘制绿色虚线,执行如下代码:
ax.plot(x,y,'g--)
通过下面更为明确的方式也能达到同样的效果:
ax.plot(x,y,linestyle='--',color='g')
完整的linestyle列表请参见plot的文档。
线形图还可以加上一些标记(marker),以强调实际的数据点。由于matplotlib创建的是连续的线形图(点与点之间插值),因此有时可能不太容易看出真实数据点的位置。标记也可以放到格式字符串中,但标记类型和线型必须放在颜色的后面。
plt.plot(randn(30).cumsum(), 'ko--')
还可以写成更明确的形式:
plt.plot(randn(30).cumsum(), color='k', linestyle='dashed', marker='o')
结果如下所示:
![](http://i.imgur.com/7XKznxp.png)
注解
注解可以通过text,arrow和annotate等函数进行添加。text可以将文本绘制在图表的指定坐标(x,y),还可以添加一些自定义格式。
ax.text(x,y,'hello world',family='monospace',fontsize=10)
散布图
散布图是观察两个一维数据序列之间关系的有效手段。matplotlib的scatter方法是绘制散布图的主要方法。
利用plt.scatter()即可轻松绘制一张简单的散布图.
- matplotLib入门
- Matplotlib入门
- matplotlib入门
- matplotlib绘图手册入门
- 入门python中的matplotlib
- Matplotlib简单入门学习
- python matplotlib入门
- matplotlib.pyplot入门
- 快速入门Matplotlib
- 9、matplotlib 基础入门
- 十分钟入门Matplotlib
- 【python】matplotlib.pyplot入门
- 十分钟入门Matplotlib
- matplotlib入门之Pyplot
- Matplotlib入门使用
- Matplotlib库入门
- Python Matplotlib库入门指南
- matplotlib数据可视化入门-python
- atof函数的实现
- codeforces 624C 二分图染色
- 计算机语言概述
- Spring面试总结1!
- php源码之路第三章第一节( 链表实现)
- matplotLib入门
- 【自考】——数据结构☞时间复杂度&平均查找长度
- strncpy的实现
- HDU 1231最大连续子序列dp入门
- Hdu1408 盐水的故事
- 【Java Web】control character in cookie value orattribute
- git 实战
- oracle sql 杂(待整理)
- 在表单中动态生成n多的商品属性,然后一起提交,想在商品对象中定义一个属性数组来接收属性,怎么办?