matplotlib 是一款用 Python 编写的 2D 绘图库,它的设计思路受到 MATLAB 的启发。这个库能在多种平台上运行,数据拷贝和交互式环境来生成图形,并且可以配合 numpy 做数组运算,也能调用其他 Python 库完成与硬件的交互。使用 matplotlib,只需要短短几行代码就能画出直方图、功率谱、条形图等图表,效率很高,操作也简单。这里提供的是 matplotlib 的安装源码,适合在 Python 环境下通过源码方式安装这个绘图库,可以免费下载使用。

1、一个图中的多个子图
支持把多个图表画在同一个画面里,用 subplot() 就能轻松生成并排或分块排列的子图。

2、图片
Matplotlib 中的 imshow() 函数可以用来呈现图像,前提是图像的水平尺寸按等距方式处理。
3、轮廓和伪彩色
pcolormesh() 能在水平方向网格间距不一致的情况下,把二维数组画成彩色图;同样的数据也可以用 contour() 函数来呈现。
4、直方图
hist() 这个函数会直接画出直方图,同时把各个分箱的计数或概率结果返回给你。

5、路径
想给图表加上自定义形状的线条,可以 matplotlib.path 模块在 Matplotlib 里绘制任意路径。

6、三维绘图
mplot3d 工具包(可查看入门介绍与 mplot3d 工具包相关内容)能绘制多种基础三维图形,例如曲面图、线框图、散点图以及条形图。

7、Streamplot
streamplot() 这个函数用来画出矢量场的流线,并且支持把流线的颜色、线宽跟另一个参数挂钩,比如矢量场速度或者局部强度,这样就不只是单纯展示流线走向了。

8、椭圆
为配合凤凰火星任务中航天器地面跟踪的Matplotlib显示需求,迈克尔Droettboom在查理Moad已有工作的基础上,实现了用8段样条来高精度逼近椭圆弧(参见Arc),且这种逼近在缩放时表现稳定。

9、条形图
调用bar()方法就能画出条形图,还支持添加误差线这类个性化设置。

10、饼图
pie() 方法可以绘制饼图,还支持自动标注各块所占比例、将任意扇形从圆心处抽离,以及添加阴影效果。参照附带的代码示例,短短几行就能把这个图跑出来。

11、表
table() 方法的作用是往坐标轴上添加一个文本表格。

12、散点图
scatter() 函数可以按需传入大小和颜色参数来绘制散点图。示例中用标记的尺寸表示 Google 股票的交易量、用颜色体现时间推移,并 alpha 属性让圆形标记呈现半透明效果。

一、函数式绘图
1、matplotlib是受MATLAB的启发的。MATLAB是数据绘图领域广泛使用的语言和工具。MATLAB语言是面向过程的。利用函数的调用,MATLAB中可以轻松的利用一行命令来绘制直线,然后再用一系列的函数调整结果。
matplotlib 的设计思路来自 MATLAB。MATLAB 在数据绘图方面用得很多,是一种面向过程的语言,调用函数就能用一行命令画出直线,接着通过一连串函数来微调效果。

2、matplotlib里的pyplot模块提供了一套接口,用法跟MATLAB的函数形式很像,熟悉MATLAB的人切换过来会顺手不少。接下来就用这个模块画一条直线试试。

3、每条命令都很直白,看函数名就能明白它要做什么,比如 plot 就是画线,title 就是加标题。最后存下来的 demo.jpg 就像下面这样。

4、上面的函数式调用很方便。在Python特殊方法与多范式中,我们已经谈到,Python中的函数式编程是通过封装对象实现的。matplotlib中的函数式调用其实也是如此。matplotlib本质上还是对象来图像。函数式编程将对象的过程封装在函数中,让我们觉得很方便。
用 pyplot 画图确实省事,但它其实是在背后帮你把对象组装好了,多包了一层函数调用,效率会打折扣,而且对象之间的从属关系、图像细节都被这层函数挡住了,遇到复杂调整还是得回到对象层面。两种写法并存也容易让人搞混,想真正深入 Matplotlib 项目,熟悉对象体系是绕不开的第一步。

1、我们将上面的直线绘图更改为面向对象式(OO, object-oriented)的,为此,我们引入两个类
现在把前面那段直线绘制改成面向对象写法,需要用到 Figure 和 FigureCanvas 这两个类。其实函数式编程里也是靠它们来干活,只不过被函数调用包了一层,看起来不明显而已。
1、acorr
用于画出x的自相关图。
2、angle_spectrum
这个工具用来生成角度谱图,把信号中的相位信息按角度分布画出来。
3、annotate
在xy坐标点上用文字添加标注内容。
4、arrow
在坐标轴上绘制一个箭头符号。
5、autoscale
把轴视图自动缩放到数据范围,可切换开关状态。
6、axes
在图表里插入一条坐标轴。
7、axhline
在坐标轴上画出一条横贯的水平线。
8、axhspan
在坐标轴上画一个横向的矩形区域,用来表示一段水平区间。
9、axis
提供一种简便方式,用于读取和设定 axis 的轴线相关属性。
10、axvline
在坐标轴上画出一条竖直的参考线。
11、axvspan
在坐标轴上绘制一个竖直方向的矩形区域,用来标示某个区间。
12、bar
在这款作品里,你得在酒吧里暗中布局,玩一场勾心斗角的阴谋。
13、barbs
在二维平面中画出一个倒钩形状,方便用户进行图形绘制与设计。
14、barh
用于生成水平方向的条形图。
15、box
用于切换轴箱的开启与关闭状态。
16、boxplot
可以绘制盒须图,用来展示数据的分布情况。
17、broken_barh
用 matplotlib 画横向条形,调用 broken_barh 就能实现。
18、cla
用来把当前选中的轴直接删掉。
19、clabel
在等高线图上添加标注,把指定的等高线标记出来。
20、clim
用于指定当前图像可用的颜色数量上限。
21、close
用于关掉屏幕上某个数字窗口的操作。
22、cohere
用来展示x与y两个变量之间的一致程度,以图形方式呈现它们的吻合情况。
23、colorbar
在绘图区域中插入一条颜色条,用来展示颜色与数值的对应关系。
(您的评论需要经过审核才能显示)
0条评论