![cover image](https://wikiwandv2-19431.kxcdn.com/_next/image?url=https://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Mpl_screenshot_figures_and_code.png/640px-Mpl_screenshot_figures_and_code.png&w=640&q=50)
matplotlib
Python编程语言的一个绘图库 / 维基百科,自由的 encyclopedia
Matplotlib是Python语言及其数值计算库NumPy的绘图(英语:Plotter)库。它提供了一个面向对象的API,可以将绘图嵌入到使用通用GUI工具包(如Tkinter、wxPython、Qt或GTK)的程序中。它还有一个基于状态机(就像OpenGL)的过程式编程“pylab”接口,其设计与MATLAB非常类似,但由于命名空间的问题,因此建议改用matplotlib.pyplot取代。[4]SciPy使用matplotlib进行图形绘制。
此条目翻译品质不佳。 |
![]() Matplotlib绘制的图表与程式码 | |
原作者 | John D. Hunter(英语:John D. Hunter) |
---|---|
开发者 | Michael Droettboom, et al. |
首次发布 | 2003年,21年前(2003)[1] |
当前版本 |
![]() |
源代码库 | ![]() |
编程语言 | Python |
引擎 | ![]() |
操作系统 | 跨平台 |
类型 | 绘图(英语:List of information graphics software) |
许可协议 | matplotlib license |
网站 | matplotlib |
Matplotlib最初由美国神经生物学家John D. Hunter(英语:John D. Hunter)撰写,于2003年面世,从此它拥有一个活跃的开发社区[5],并根据BSD许可证发布。 在John D. Hunter于2012年8月去世前不久,Michael Droettboom被提名为matplotlib的主要开发者[6],随后,Thomas Caswell也加入了他的行列。[7][8]Matplotlib是一个由NumFOCUS财政资助的项目。[9]
Matplotlib 2.0.x支持Python 2.7到3.10版本。Matplotlib 1.2是第一个支持Python 3.x的版本。Matplotlib 1.4是最后一个支持Python 2.6的版本。[10]Matplotlib已签署Python 3声明,承诺在2020年后不再支持Python 2。[11]
与MATLAB的比较
Pyplot是matplotlib的一个模块,它提供了一个类似MATLAB的接口。 [12]Matplotlib被设计成与MATLAB一样可用,能够使用Python,并且具有自由开源的优点。
与 Gnuplot的比较
gnuplot和matplotlib都是成熟的开源项目。 它们都可以产生多种不同绘图类型。 虽然很难指定一种某人能做而他人不能做的图形类型,但它们仍然具有不同的优点和缺点:
优点 | 缺点 | |
---|---|---|
Matplotlib |
|
|
Gnuplot |
|
|
例子
曲线图
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/13/Matplotlib_basic_v.svg/640px-Matplotlib_basic_v.svg.png)
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> a = np.linspace(0,10,100)
>>> b = np.exp(-a)
>>> plt.plot(a,b)
>>> plt.show()
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/13/Matplotlib_histogram_v.svg/640px-Matplotlib_histogram_v.svg.png)
>>> import matplotlib.pyplot as plt
>>> from numpy.random import normal,rand
>>> x = normal(size=200)
>>> plt.hist(x,bins=30)
>>> plt.show()
散点图
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/98/Matplotlib_scatter_v.svg/640px-Matplotlib_scatter_v.svg.png)
>>> import matplotlib.pyplot as plt
>>> from numpy.random import rand
>>> a = rand(100)
>>> b = rand(100)
>>> plt.scatter(a,b)
>>> plt.show()
3D 图
![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Matplotlib_3d_v.svg/640px-Matplotlib_3d_v.svg.png)
>>> from matplotlib import cm
>>> from mpl_toolkits.mplot3d import Axes3D
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> fig = plt.figure()
>>> # ax = fig.gca(projection='3d') (Old)
>>> ax = fig.add_subplot(projection='3d')
>>> X = np.arange(-5, 5, 0.25)
>>> Y = np.arange(-5, 5, 0.25)
>>> X, Y = np.meshgrid(X, Y)
>>> R = np.sqrt(X**2 + Y**2)
>>> Z = np.sin(R)
>>> surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm)
>>> plt.show()
更多例子
-
Image plot
-
Contour plot
-
Scatter plot
-
Polar plot
-
Line plot
-
3-D plot
-
Image plot
轶事
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Matplotlib_xkcd.png/320px-Matplotlib_xkcd.png)
为了致敬xkcd,matplotlib加入了matplotlib.pyplot.xkcd()函数,模仿xkcd的漫画风格进行绘图。[13][14]
参考资料
- Copyright Policy. [2017-02-23]. (原始内容存档于2020-12-02).
- Release 3.9.0. 2024年5月15日 [2024年5月23日].
- Releases – matplotlib. [2019-05-13]. (原始内容存档于2020-11-11).
- API Overview. matplotlib.org. [2021-06-18]. (原始内容存档于2021-07-01).
- Matplotlib github stats. matplotlib.org. [2021-06-18]. (原始内容存档于2021-06-24).
- Announcing Michael Droettboom as the lead matplotlib developer. matplotlib.org. [2017-02-23]. (原始内容存档于2020-10-27).
- Matplotlib Lead Developer Explains Why He Can’t Fix the Docs—But You Can – NumFOCUS. NumFOCUS. 2017-10-05 [2018-04-11]. (原始内容存档于2021-06-28) (美国英语).
- Credits – Matplotlib 2.2.2 documentation. matplotlib.org. [2018-04-11]. (原始内容存档于2021-06-24).
- NumFOCUS Sponsored Projects. NumFOCUS. [2021-10-25]. (原始内容存档于2023-06-04).
- Installing – Matplotlib 2.0.2 documentation. [2017-06-23]. (原始内容存档于2021-06-24).
- Add Matplotlib to list by takluyver · Pull Request #20 · python3statement/python3statement.github.io. GitHub. [2018-04-11]. (原始内容存档于2020-11-20) (英语).
- Matplotlib: Python plotting — Matplotlib 3.2.0 documentation. matplotlib.org. [2020-03-14]. (原始内容存档于2021-05-07).
- matplotlib.pyplot.xkcd — Matplotlib 3.4.2 documentation. matplotlib.org. [2021-07-05]. (原始内容存档于2021-07-09) (英语).
- XKCD — Matplotlib 3.4.2 documentation. matplotlib.org. [2021-07-05]. (原始内容存档于2021-07-11) (英语).
参见
外部链接
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png)