百木园-与人分享,
就是让自己快乐。

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

概要

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

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

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

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

基础元素

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

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

  • Figure:最重要的元素,所有的其他元素都是绘制在其上
  • Axes:第二重要的元素,也就是 subplot(子图),数据都是显示在这个区域
  • Axis:坐标轴,本质是一种带装饰的 spines,一般分为 xaxis 和 yaxis
  • Spines:数据显示区域的边界,可以显示或不显示
  • Artist:任何显示在 Figure 上的元素
  • 这5个元素的概念不是互相独立的,比如 Axis 可以看做是一种 Spines,而Figure,Axes和Axis都可以看成是 Artist。
    Artist 是很通用的概念,几乎任何需要绘制的元素都可以当成是 Artist,但是一个 Artist 只能存在于一个 Axes 之上。

    图元(graphic primitives)

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

  • Patches,比如 markers,bars,也可以是一系列的 circles,rectangles,polygons等等
  • Lines,比如 ticks,hatches等等
  • Texts,支持任意的字体,也支持 latex 格式的数学格式
  • 通过下图可以看到 Figure 上显示的各类图元:
    anatomy.png

    绘制图形的引擎(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的划分依据,绘制复杂图像的时候,能够更合理的规划显示区域和绘制顺序。

    来源:https://www.cnblogs.com/wang_yb/p/15882712.html
    图文来源于网络,如有侵权请联系删除。

    未经允许不得转载:百木园 » matplotlib可视化系列之【基础元素】

    相关推荐

    • 暂无文章