- 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 - 多图
在本章中,我们将学习如何在同一画布上创建多个子图。
subplot ()函数返回给定网格位置的坐标区对象。该函数的调用签名是 -
plt.subplot(subplot(nrows, ncols, index)
在当前图中,该函数创建并返回一个 Axes 对象,位于 nrows x ncolsaxes 网格的位置索引处。索引从 1 到 nrows * ncols,按行主序递增。如果 nrows、ncols 和索引都小于 10。索引也可以以单个、串联、三位数的形式给出。
例如, subplot(2, 3, 3) 和 subplot(233) 都在当前图窗的右上角创建一个轴,占据图窗高度的一半和图窗宽度的三分之一。
创建子图将删除与其重叠但超出共享边界的任何预先存在的子图。
import matplotlib.pyplot as plt # plot a line, implicitly creating a subplot(111) plt.plot([1,2,3]) # now create a subplot which represents the top plot of a grid with 2 rows and 1 column. #Since this subplot will overlap the first, the plot (and its axes) previously created, will be removed plt.subplot(211) plt.plot(range(12)) plt.subplot(212, facecolor='y') # creates 2nd subplot with yellow background plt.plot(range(12))
上面的代码行生成以下输出 -
图类的 add_subplot() 函数不会覆盖现有图 -
import matplotlib.pyplot as plt fig = plt.figure() ax1 = fig.add_subplot(111) ax1.plot([1,2,3]) ax2 = fig.add_subplot(221, facecolor='y') ax2.plot([1,2,3])
当执行上面的代码行时,它会生成以下输出 -
您可以通过在同一图形画布中添加另一个坐标区对象来在同一图形中添加插入图。
import matplotlib.pyplot as plt import numpy as np import math x = np.arange(0, math.pi*2, 0.05) fig=plt.figure() axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # main axes axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # inset axes y = np.sin(x) axes1.plot(x, y, 'b') axes2.plot(x,np.cos(x),'r') axes1.set_title('sine') axes2.set_title("cosine") plt.show()
执行上述代码行后,将生成以下输出 -