怎么在SubFigure上画图
时间: 2023-11-30 08:03:40 浏览: 74
在SubFigure上画图的步骤如下:
1. 导入所需库:`import matplotlib.pyplot as plt`
2. 创建子图:`fig, ax = plt.subplots(nrows, ncols)`
其中,`nrows`和`ncols`分别代表子图的行数和列数,`fig`和`ax`分别代表Figure和Axes对象。可以通过`ax[i,j]`来访问第`i`行、第`j`列的子图。
3. 在子图上绘制图形:使用`ax[i,j].plot()`、`ax[i,j].scatter()`等方法绘制图形。可以在不同的子图上使用不同的绘图方法,实现多个图形的绘制。
4. 添加子图标题和轴标签:使用`ax[i,j].set_title()`、`ax[i,j].set_xlabel()`、`ax[i,j].set_ylabel()`等方法添加子图标题和轴标签。
5. 调整布局:使用`plt.tight_layout()`方法调整子图之间的间距和布局。
示例代码如下:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建2行2列的子图
fig, ax = plt.subplots(2, 2)
# 在第一个子图上绘制折线图
x = np.arange(0, 10, 0.1)
y = np.sin(x)
ax[0, 0].plot(x, y)
ax[0, 0].set_title('Sin(x)')
ax[0, 0].set_xlabel('x')
ax[0, 0].set_ylabel('y')
# 在第二个子图上绘制散点图
x = np.random.randn(100)
y = np.random.randn(100)
ax[0, 1].scatter(x, y)
ax[0, 1].set_title('Random Data')
ax[0, 1].set_xlabel('x')
ax[0, 1].set_ylabel('y')
# 在第三个子图上绘制柱状图
x = ['A', 'B', 'C', 'D']
y = [10, 20, 30, 40]
ax[1, 0].bar(x, y)
ax[1, 0].set_title('Bar Plot')
ax[1, 0].set_xlabel('Category')
ax[1, 0].set_ylabel('Count')
# 在第四个子图上绘制饼图
sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']
ax[1, 1].pie(sizes, labels=labels)
ax[1, 1].set_title('Pie Chart')
# 调整布局
plt.tight_layout()
# 显示图形
plt.show()
```
运行代码后,会显示一个包含四个子图的图形,每个子图上绘制了不同的图形。
阅读全文