Matplotlib是Python里可视化的基础包,可以很方便地绘制二维,三维的图表,作图风格接近MATLAB,所以称为matplotlib。使用简单的语句就能绘制漂亮的图形。本篇我们来学习matplotlib图表的组成元素。常用的一些绘图组件和概念已经展示在了文章开始的图中。使用简单的API就可以将该图绘制出来。结合图形,我们先解释一些概念和基础API,最后使用完整的代码绘制这幅图。后台回复“绘图”获取本文完整代码。
如图形所示,我们对matplotlib操作时,是从Figure开始的,通常称为画布,类似于现实中绘图时的画板。在画板上,我们可以绘制一幅和多幅图形,这些图形就是axes。所有的图形元素,如坐标轴,刻度线,标签,线条,标记等都是在图形实例之上的。在只有一个axes实例时,我们可以使用matplotlib.pyplot来操作这些图形元素,“组成”一幅完整的图。
在绘图之前,我们需要导入相应的包:pyplot用于操作图表元素,numpy用于生成绘图需要的基础数据。
import matplotlib.pyplot as plt
import numpy as np
对于图表元素的使用,基本都是通过调用plt的函数来完成,调用时设置相应的参数就能产生不同的效果。常见的一些函数总结如下:
下面来看一个简单的示例,代码和效果如下面所示:
在这个例子中,上面列出的函数几乎都用到了。y是x的正弦函数,上面代码的效果分别为:绘制了一个y与x的线型关系,在最高点添加了带箭头的注释,在线条旁边添加了不带箭头的注释,绘制了水平虚线,标注了x轴标签,y轴标签,设置了横坐标的范围,最后添加了标题和图例。
接下来我们进一步使用上面的函数,绘制文章开头的图形。图中增加了spine,ticklabel,tickline等元素,并主要通过指向型和无指向型注释,对各个元素进行了说明,不仅便于理解和查阅,学习下面的代码也能进一步加深对matplotlib的理解。代码和注释如下:
运行上面的代码就可以绘制出这张图了。需要注意:annotate进行注释只能在axes内部,而text()函数可以在“任意”地方写注释。