目录
三、Matplotlib图形组成(重要,需要理解透彻)
一、Matplotlib是什么?
Matplotlib 是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy ndarray 数组来绘制 2D 图像,它使用简单、代码清晰易懂,深受广大技术爱好者喜爱。
(NumPy 是 Python 科学计算的软件包,ndarray 则是 NumPy 提供的一种数组结构。)
二、Matplotlib架构
Matplotlib 由三个不同的层次结构组成,分别是脚本层、美工层和后端层。
2.1脚本层(Scripting)
脚本层是 Matplotlib 结构中的最顶层。我们编写的绘图代码大部分代码都在该层运行,它的主要工作是负责生成图形与坐标系。matplotlib.pyplot
,通常起别名为plt。
2.2美工层(Artist)
Artist
是Matplotlib的中间层,也是很多繁重的情况发生的地方,后端FigureCanvas
是画纸,Artist
是知道如何拿起Renderer
(画笔)并将墨水涂在画布上的对象,你在Matplotlib的Figure
都是Artist
的实例,包括title, lines, tick labels, images
等等,他们都属于基类matplotlib.artist.Artist
,而Artist
和backend
之间的关联发生在draw
方法中。由于Renderer
有一个指向其画布FigureCanvas
的指针,并知道如何在其上绘画,因此draw
方法可以将抽象的指令转换Artist
为像素缓冲区中的颜色、SVG 文件中的路径或任何具体表示。
我们用两张图来理解Artist
的各个实例与层次,在这张图中,我们给出了主要的实例:Figure(图)、Axes(轴域)、Text(文本)、2Dline(二维线条)、XAxis(X轴)、YAxis(Y轴)、Xlabel(X轴标签)、Xticks(X轴刻度)、Ylabel(Y轴标签)、Yticks(Y轴刻度)
,注意,Axes中的ax.set_xticklabels()
设置的就是plt.xticks().
最大的一类是Figure
,其次是Axes
,再其次是Axes
中的一些实例,轴、文本、线条等等,Text
可以包含图的标题、图注、图标等等一切的文本。
另外需要注意这些美工实例又分为原始型美工(Primitive artists)
与复合型美工(Composite artists)
,例如前面提到的Text
、以及背景的Rectangle、Circle
都是原始型美工,而Axis、Tick、labels、Axes、Figure
则是复合型美工,一个复合型美工可以包含多个复合型美工或者原始型美工,例如,Figure
可以包含包含一个或多个Axes
并且Figure
的背景是一个基元Rectangle
。
接下来我们对这些实例进行一一介绍:
实例1:Figure
将Figure看成是一张大的画板。那么问题来了: