简介

    Matplotlib 的设计理念是,你应该能够使用几个,或者只有一个命令创建简单的图形。如果你想看到你的数据的直方图,你不需要实例化对象,调用方法,设置属性等等;它应该能够工作。

    多年来,我常常使用 MATLAB 进行数据分析和可视化。 MATLAB 擅长绘制漂亮的图形。当我开始处理 EEG 数据时,我发现我需要编写应用程序来与我的数据交互,并在 MATLAB 中开发了一个 EEG 分析应用程序。随着应用程序越来越复杂,需要与数据库,http 服务器交互,并操作复杂的数据结构,我开始与 MATLAB 作为一种编程语言的限制而抗争,并决定迁移到 Python。 Python 作为一种编程语言,弥补了 MATLAB 的所有缺陷,但我很难找到一个 2D 绘图包(3D 则超过了我的所有需求)。

    • 绘图应该看起来不错 - 发布质量。 对我来说一个重要的要求是文本看起来不错(抗锯齿等)
    • 可嵌入图形用户界面用于应用程序开发
    • 绘图应该很容易

    没有找到适合我的包,我做了任何自称 Python 程序员会做的事情:撸起我的袖子开始自己造。我没有任何真正的计算机图形经验,决定模仿 MATLAB 的绘图功能,因为 MATLAB 做得很好。这有额外的优势,许多人有很多 MATLAB 的经验,因此,他们可以很快开始在 python 中绘图。从开发人员的角度来看,拥有固定的用户接口(pylab 接口)非常有用,因为代码库的内容可以重新设计,而不会影响用户代码。

    Matplotlib 代码在概念上分为三个部分:pylab 接口是由提供的函数集,允许用户使用非常类似于 MATLAB 图生成代码(Pyplot 教程)的代码创建绘图。 Matplotlib 前端或 Matplotlib API 是一组重要的类,创建和管理图形,文本,线条,图表等()。这是一个对输出无所了解的抽象接口。后端是设备相关的绘图设备,也称为渲染器,将前端表示转换为打印件或显示设备(什么是后端?)。后端示例:PS 创建 PostScript® 打印件,SVG 创建打印件,Agg 使用 Matplotlib 附带的高质量反颗粒几何库创建 PNG 输出,GTK 在 应用程序中嵌入 Matplotlib,GTKAgg 使用反颗粒渲染器创建图形并将其嵌入到 Gtk+ 应用程序中,以及用于 PDF,,Tkinter 等。

    [1] MATLAB 是 MathWorks 公司的注册商标。