基础介绍
2019年4月19日大约 2 分钟约 541 字
import matplotlib as mpl import matplotlib.pyplot as plt
在用Matplotlib画图时,都需要先创建一个图形fig
和一个坐标轴ax
,其最简单的做法如下:
- 在Matplotlib里面,
figure
(plt.Figure类的一个实例)可以被看成是一个能够容纳各种坐标轴、图形、文字和标签的容器。 axes
(plt.Axes类的一个实例)是一个带有刻度和标签的矩形,最终会包含所有可视化的图形元素。

matplotlib的三种开发环境的区别:
脚本 | IPython shell | IPython Notebook |
---|---|---|
显示图形必须在最后使用plt.show() | 在IPython shell中启动%Matplotlib 模式之后,就不需要使用plt.show() 了。此后任何 plt 命令都会自动打开一个图形窗口,增加新的命令,图形就会更新,也可以使用plt.draw() 强制更新。 | 与IPython shell类似,也需要使用%matplotlib 命令。有两种展现形式, %matplotlib notebook 会有notebook中启动交互式图形;%matplotlib inline 会在notebook中启动静态图形。 |
两种画图接口
MATLAB风格的工具位于
pyplot(plt)
接口中:- 这种接口是有状态的:它会持续跟踪“当前的”图形和坐标轴,所有
plt
命令都可以应用。 - 你可以用
plt.gcf()
(获取当前图形)和plt.gca()
(获取当前坐标轴)来查看具体信息。
- 这种接口是有状态的:它会持续跟踪“当前的”图形和坐标轴,所有
面向对象接口:在面向对象接口中,画图函数不再受到当前“活动”图形或坐标轴的限制,而变成了显式的
Figure
和Axes
的方法。
Matplotlib陷阱:
虽然绝大多数的
plt
函数都可以直接转换成ax
方法(例如plt.plot()
→ax.plot()
、plt.legend()
→ax.legend()
等),但是并非所有的命令都可以这样用。尤其是用来设置坐标轴上下限、坐标轴标题和图形标题的函数。通常也可采用
ax.set()
方法一次性设置所有的属性是更简便的方法:
保存/显示图片
保存图片
fig=plt.figure() fig.savefig('my_figure.png')
显示图片
from IPython.display import Image Image('my_figure.png')