[Python3] Matplotlib —— (一) 入门基础


[ Matplotlib version: 3.2.1]


一、Matplotlib常用技巧

(一)导入

import matplotlib as mpl
import matplotlib.pyplot as plt

(二)设置绘图样式

使用plt.style来选择图形的绘图风格(如经典风格classic)

plt.style.use('classic')

(三)显示图形

1. 在脚本中画图

如果在一个脚本文件中使用Matplotlib,那么显示图形的时候必须使用plt.show()

  • plt.show()会启动一个事件循环(event loop),并找到所有当前可用的图形对象,打开一个或多个交互式窗口显示图形
  • 注意:一个Python会话(session)中只能使用一次plt.show(),因此通常都把它放在脚本的最后。多个plt.show()命令会导致显示异常。

2. 在IPython shell中画图

需要在启动IPython后使用%matplotlib魔法命令。

  • 此后任何plt命令都会自动打开一个图形窗口,增加新的命令,图形就会更新。
  • 有一些变化不会自动及时更新,可以使用plt.draw()强制更新。
  • 在IPython shell中不需要使用plt.show()

3. 在IPython Notebook中画图

IPython Notebook是一款基于浏览器的交互式数据分析工具,可以将描述性文字、代码、图形、HTML元素以及更多的媒体形式组成起来,集成到单个可执行的Notebook文档中(如Jupyter Notebook)

用Jupyter Notebook也需要使用%matplotlib魔法命令,可以将图形直接嵌在页面中,有两种展现形式:

  • %matplotlib notebook会在Notebook中启动交互式图形
  • %matplotlib inline会在Notebook中启动静态图形

(文中统一使用)%matplotlib inline运行命令之后(每一个Notebook核心任务/会话只需要运行一次),在每个Notebook的单元中创建图形就会直接将PNG格式图形文件嵌入在单元中

在这里插入图片描述

(四)将图形保存为文件

Matplotlib可以将图形保存为各种不同的数据格式。用savefig()命令将图形保存为文件。

  • savefig()中,保存的图片文件格式就是文件的扩展名
  • 注意:保存图形文件时,不需要使用plt.show()
# 保存为PNG格式
fig.savefig('my_figure.png')

确定文件中是否保存有我们需要的内容,可以用IPython的Image对象来显示文件内容:

from IPython.display import Image
Image('my_figure.png')

二、两种画图接口

Matplotlib一个特性:它有两种画图接口,一是便捷的MATLAB风格接口,另一个是功能更强大的面向对象接口。

(一)MATLAB风格接口

Matplotlib最初作为MATLAB用户的Python替代品,许多语法都与MATLAB类似。MATLAB风格的工具位于pyplot接口中。

这种接口最重要的特性是有状态的(stateful):它会持续跟踪“当前的”图形和座标轴,所有plt命令都可以应用。

可以用plt.gcf()(获取当前图形)和plt.gca()(获取当前座标轴)来查看具体信息。

plt.figure()  # 创建图形

# 创建两个子图中的第一个,设置座标轴
plt.subplot(2, 1, 1)  # (行、列、子图编号)
plt.plot(x, np.sin(x))

# 创建两个子图中的第二个,设置座标轴
plt.subplot(2, 1, 2)
plt.plot(x, np.cos(x))

在这里插入图片描述

(二)面向对象接口

面向对象接口可以适应更复杂的场景,更好地控制图形。在面向对象接口中,画图函数不再受到当前“活动”图形或座标轴的限制,而变成了显示的FigureAxes的方法。

# 先创建图形网络
# ax是一个包含两个Axes对象的数组
fig, ax = plt.subplots(2)

# 在每个对象上调用plot()方法
ax[0].plot(x, np.sin(x))
ax[1].plot(x, np.cos(x))

总结自《Python数据科学手册》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章