- Matplotlib 教程
- Matplotlib - 主页
- Matplotlib - 简介
- Matplotlib - 环境设置
- Matplotlib - Anaconda 分布
- Matplotlib - Jupyter 笔记本
- Matplotlib - Pyplot API
- Matplotlib - 简单绘图
- Matplotlib - PyLab 模块
- 面向对象的接口
- Matplotlib - 图形类
- Matplotlib - 轴类
- Matplotlib - 多图
- Matplotlib - Subplots() 函数
- Matplotlib - Subplot2grid() 函数
- Matplotlib - 网格
- Matplotlib - 格式化轴
- Matplotlib - 设置限制
- 设置刻度和刻度标签
- Matplotlib - 双轴
- Matplotlib - 条形图
- Matplotlib - 直方图
- Matplotlib - 饼图
- Matplotlib - 散点图
- Matplotlib - 等值线图
- Matplotlib - 箭袋图
- Matplotlib - 箱线图
- Matplotlib - 小提琴图
- 三维绘图
- Matplotlib - 3D 等高线图
- Matplotlib - 3D 线框图
- Matplotlib - 3D 曲面图
- Matplotlib - 处理文本
- 数学表达式
- Matplotlib - 处理图像
- Matplotlib - 变换
- Matplotlib 有用资源
- Matplotlib - 快速指南
- Matplotlib - 有用的资源
- Matplotlib - 讨论
Matplotlib - 面向对象的接口
虽然使用matplotlib.pyplot模块很容易快速生成绘图,但建议使用面向对象的方法,因为它可以更好地控制和自定义绘图。大多数函数也可在 matplotlib.axes.Axes类中使用。
使用更正式的面向对象方法背后的主要思想是创建图形对象,然后调用该对象的方法或属性。这种方法有助于更好地处理具有多个绘图的画布。
在面向对象的界面中,Pyplot 仅用于少数功能,例如图形创建,用户显式创建并跟踪图形和轴对象。在这一级别,用户使用 Pyplot 创建图形,并通过这些图形可以创建一个或多个轴对象。这些轴对象随后用于大多数绘图操作。
首先,我们创建一个提供空画布的图形实例。
fig = plt.figure()
现在将轴添加到图中。add_axes ()方法需要一个包含 4 个元素的列表对象,分别对应于图形的左、下、宽和高。每个数字必须介于 0 和 1 之间 -
ax=fig.add_axes([0,0,1,1])
设置 x 轴和 y 轴以及标题的标签 -
ax.set_title("sine wave") ax.set_xlabel('angle') ax.set_ylabel('sine')
调用坐标区对象的plot()方法。
ax.plot(x,y)
如果您使用 Jupyter Notebook,则必须发出 %matplotlib inline 指令;pyplot 模块的 otherwistshow() 函数显示绘图。
考虑执行以下代码 -
from matplotlib import pyplot as plt import numpy as np import math x = np.arange(0, math.pi*2, 0.05) y = np.sin(x) fig = plt.figure() ax = fig.add_axes([0,0,1,1]) ax.plot(x,y) ax.set_title("sine wave") ax.set_xlabel('angle') ax.set_ylabel('sine') plt.show()
输出
上面的代码行生成以下输出 -
在 Jupyter 笔记本中运行相同的代码时显示的输出如下所示 -