subplot 和subplots函数
时间: 2023-09-22 19:08:22 浏览: 101
`subplot`和`subplots`都是用来在一个图上绘制多个子图的函数。
`subplot`函数用于绘制单个子图,它的语法为:
```python
plt.subplot(nrows, ncols, index, **kwargs)
```
其中,`nrows`和`ncols`表示子图网格的行数和列数,`index`表示当前子图的位置,从左上角开始从左到右、从上到下依次编号。`**kwargs`是可选的参数,用于设置当前子图的属性,如标题、坐标轴等。
例如,要在一个2x2的网格上绘制4个子图,可以使用以下代码:
```python
import matplotlib.pyplot as plt
plt.subplot(2, 2, 1)
plt.plot([1, 2, 3], [4, 5, 6])
plt.title('Subplot 1')
plt.subplot(2, 2, 2)
plt.plot([1, 2, 3], [4, 5, 6])
plt.title('Subplot 2')
plt.subplot(2, 2, 3)
plt.plot([1, 2, 3], [4, 5, 6])
plt.title('Subplot 3')
plt.subplot(2, 2, 4)
plt.plot([1, 2, 3], [4, 5, 6])
plt.title('Subplot 4')
plt.tight_layout()
plt.show()
```
`subplots`函数则可以一次性绘制多个子图,并将它们保存在一个二维数组中,方便后续操作。它的语法为:
```python
fig, axes = plt.subplots(nrows, ncols, **kwargs)
```
其中,`fig`是整个图像的对象,`axes`是一个二维数组,保存所有子图的对象。其他参数与`subplot`函数相同。
例如,要在一个2x2的网格上绘制4个子图,可以使用以下代码:
```python
import matplotlib.pyplot as plt
fig, axes = plt.subplots(2, 2)
axes[0, 0].plot([1, 2, 3], [4, 5, 6])
axes[0, 0].set_title('Subplot 1')
axes[0, 1].plot([1, 2, 3], [4, 5, 6])
axes[0, 1].set_title('Subplot 2')
axes[1, 0].plot([1, 2, 3], [4, 5, 6])
axes[1, 0].set_title('Subplot 3')
axes[1, 1].plot([1, 2, 3], [4, 5, 6])
axes[1, 1].set_title('Subplot 4')
plt.tight_layout()
plt.show()
```
注意,使用`subplots`函数时不需要再调用`subplot`函数,而是直接通过二维数组索引来获取每个子图对象,并设置其属性。
阅读全文