matplotlib可视化系列之【基础元素】

概要

matplotlib算是历史悠久的python可视化库了,2003年就发布了 v0.10 版本,现在已经到了 v3.x 版本了。

成都创新互联主营酒泉网站建设的网络公司,主营网站建设方案,app软件开发公司,酒泉h5微信小程序定制开发搭建,酒泉网站营销推广欢迎酒泉等地区企业咨询

代码和功能虽然有翻天覆地改变,但由于其历史悠久,功能强大,用户基数庞大,所以,我们在使用 matplotlib 库的时候,几乎可以搜索到我们需要的各种示例。

我之前的做的一些数据分析结果的展示项目,没有去研究 matplotlib 的文档,只是看看接口和示例,也能写出各种分析结果的展示。

但是,系统地去了解下 matplotlib 库还是有必要的,一方面了解之后可以写出更高效的代码,另一方面,对各种示例能做到知其然也知其所以然,更高效的对示例做一些微调。

基础元素

下面都是 matplotlib 库中一些基本元素的术语,直接用的英文,没有翻译,这样方便和库的API对应上(库中的API函数也是使用这些英文名称)。

matplotlib 中重要的基础元素主要有5种:

  1. Figure:最重要的元素,所有的其他元素都是绘制在其上
  2. Axes:第二重要的元素,也就是 subplot(子图),数据都是显示在这个区域
  3. Axis:坐标轴,本质是一种带装饰的 spines,一般分为 xaxis 和 yaxis
  4. Spines:数据显示区域的边界,可以显示或不显示
  5. Artist:任何显示在 Figure 上的元素

这5个元素的概念不是互相独立的,比如 Axis 可以看做是一种 Spines,而Figure,Axes和Axis都可以看成是 Artist。
Artist 是很通用的概念,几乎任何需要绘制的元素都可以当成是 Artist,但是一个 Artist 只能存在于一个 Axes 之上。

图元(graphic primitives)

图元可以看作是可编辑的 Artist,包括:

  1. Patches,比如 markers,bars,也可以是一系列的 circles,rectangles,polygons等等
  2. Lines,比如 ticks,hatches等等
  3. Texts,支持任意的字体,也支持 latex 格式的数学格式

通过下图可以看到 Figure 上显示的各类图元:

绘制图形的引擎(Backends)

matplotlib 的图形绘制引擎也是可以设置的,根据显示的要求选择栅格图或者矢量图。

Renderer Type FileType
Agg 栅格图 png
PS 矢量图 Postscript(PS)
PDF 矢量图 pdf
SVG 矢量图 svg
Cairo 栅格图/矢量图 png/pdf/svg

这些 renderers 可以图形接口(UI)对接

Interface Renderer Dependencies
GTK3 Agg/Cairo PyGObject & Pycairo
QT4 Agg PyQt4
QT5 Agg PyQt5
Tk Agg TkInter
Wx Agg wxPython
Web Agg Browser

外形尺寸和清晰度(dimmensions & resolution)

matplotlib 的尺寸的单位是(inch),可以在初始化指定,也可以在随后的代码中指定。
比如:

plt.figure(figsize=(6, 6))  # 生成的图像是 6英寸 * 6英寸的

这里的单位是英寸,不是像素。如何要生成指定像素的图像,还需要指定清晰度,也就是dpi(dots per inch)。
比如:

plt.figure(figsize=(6, 6), dpi=100)  # 生成 600*600 像素的图像
plt.figure(figsize=(5.12, 5.12), dpi=100)  # 生成 512*512 像素的图像

也就是说,像素由图形大小乘以其清晰度来决定的,figsize控制图像的大小,dpi控制图像的清晰度。

总结

对 matplotlib 中的基础元素和概念的了解有助于理解它的文档中各类API的划分依据,绘制复杂图像的时候,能够更合理的规划显示区域和绘制顺序。


当前题目:matplotlib可视化系列之【基础元素】
文章源于:http://cdiso.cn/article/dsojdoc.html

其他资讯