Matplotlib简介

Matplotlib 是建立在Numpy数组基础上的多平台数据可视化程序库,最重要的特性之一就是具有良好的操作系统兼容性图形显示底层接口兼容性,并支持几十种图形显示接口与输出格式,功能较完善、跨平台的画图引擎。

官方网站:Matplotlib: Python plotting — Matplotlib 3.4.3 documentation

Gallery — Matplotlib 3.4.3 documentation

导入模块

import matplotlib as mpl
import matplotlib.pyplot as plt

相关的开发环境操作

脚本中绘图

在脚本文件中使用Matplotlib,在显示图形时需要使用plt.show()这行代码启动一个事件循环,找到可用的图形对象,并打开一个或多个交互式窗口显示图形。(plt.show()这行代码在后面可以帮助自动完成许多事情)

IPython shell中绘图

在IPython shell中交互式地使用Matplotlib画图非常方便,启动时需用魔法命令%matplotlib,之后每次plt命令后都会自动打开一个图形窗口。

IPython Notebook中画图

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

  • %matplotlib notebook 启动交互式图形;
  • %matplotlib inline 启动静态图形。(运行命令之后直接插入图形)

保存图片为文件

Matplotlib能将图形保存为各种不同的数据格式。

  • 查看支持的保存格式:fig.canvas.get_supported_filetypes()
  • 保存命令(savefig()):fig.savefig('my_figure.png')

画图接口

MATLAB风格接口

MATLAB风格的工具位于pyplot(plt)接口中,这个接口最重要的特性是有状态的(stateful),它会持续跟踪当前的图形和坐标轴。

操作语法与MATLAB的类似,可以用 plt.gcf()(获取当前图形)和 plt.gca()(获取当前坐标轴)。

x = np.linspace(0, 10, 100)
#创建图形
plt.figure()

#创建两个子图中的第一个
plt.subplot(2, 1, 1)
plt.plot(x, np.sin(x))

#创建第二个子图
plt.subplot(2, 1, 2)
plt.plot(x, np.cos(x))

面对对象接口

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

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

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

posted @ 2022-01-07 21:41  溪奇的数据  阅读(414)  评论(0编辑  收藏  举报