Matplotlib - 简介
Matplotlib - 简介
Section titled “Matplotlib - 简介”Matplotlib 是一个全面的库,用于在 Python 中创建静态、动态和交互式的可视化图表。它可以说是使用最广泛的 Python 绘图库,并且是科学 Python 生态系统的基础。
主要特性:
- 多功能绘图: 可以创建各种各样的图表,包括折线图、散点图、条形图、直方图、等高线图、3D 图等等。
- 出版质量: 生成高质量的图形,适用于以各种格式(PNG、JPG、PDF、SVG 等)出版。
- 高度定制: 对图表的每个方面提供广泛的控制,包括颜色、线条样式、标记、字体、标签和布局。
- 良好集成: 可以与 NumPy 和 Pandas 等核心数据科学库无缝协作。
- 可扩展性: 为不同的使用场景提供多种 API(应用程序接口):
-
pyplot接口: 一个基于状态的接口,方便进行交互式绘图(类似于 MATLAB)。
-
- 面向对象 (OO) 接口: 一个更强大和灵活的接口,推荐用于复杂的图表、程序化操作以及将图表嵌入到应用程序中。
- 跨平台: 可以在 Windows、macOS 和 Linux 上运行。
- 可嵌入: 可以使用各种 GUI 工具集(Tkinter、PyQt、WxPython)和 Web 框架嵌入到应用程序中。
Matplotlib 在很大程度上依赖于 NumPy 进行数值运算,因此几乎总是与 NumPy 结合使用。
Matplotlib 最初由 John D. Hunter 于 2003 年创建。在他于 2012 年去世后,它成为了一个社区驱动的项目,由一个大型贡献者团队维护和开发。它通过定期更新和新功能不断发展。
Pyplot 与 面向对象 API 的对比
Section titled “Pyplot 与 面向对象 API 的对比”你会遇到两种主要的 Matplotlib 使用方式:
matplotlib.pyplot: 一系列函数(如plt.plot()、plt.title()等),它们隐式地操作一个“当前”图形 (figure) 和轴 (axes)。这种方式易于学习,非常适合快速绘图。- 面向对象 API: 显式创建和管理
Figure和Axes对象(例如fig, ax = plt.subplots(); ax.plot(...))。它提供了更多的控制,更适合创建复杂图形或编写可复用代码,通常是非交互式使用的推荐方法。
本教程将介绍这两种方法,并在更复杂的场景中强调面向对象 API,因为它提供了更好的灵活性和清晰度。
(注意:较旧的 pylab 接口,它将 pyplot 和 NumPy 导入到全局命名空间中,由于会造成命名空间污染,现在强烈不推荐使用。)