matplotlib绘制多个子图
时间: 2023-07-12 16:22:05 浏览: 122
要在同一张图中绘制多个子图,可以使用matplotlib中的subplot函数。subplot函数的语法为:
```python
subplot(nrows, ncols, index, **kwargs)
```
其中,nrows和ncols分别表示要创建的子图的行数和列数,index表示当前子图的位置,从左上角开始逐行逐列计数。例如,如果要创建一个2x2的子图,并绘制在第一个位置,可以使用如下代码:
```python
import matplotlib.pyplot as plt
fig, axs = plt.subplots(nrows=2, ncols=2)
axs[0, 0].plot([1, 2, 3], [4, 5, 6])
plt.show()
```
这里使用了plt.subplots函数来创建一个2x2的子图,返回的是一个元组(fig, axs),其中fig表示整个图像,axs是一个二维数组,包含了每个子图的Axes对象。然后,通过axs[0, 0]来获取第一个子图的Axes对象,并使用plot函数来绘制图像。
如果要在不同的子图中绘制不同的图像,只需要依次访问每个子图的Axes对象即可。例如,下面的代码在第一个子图中绘制一条直线,在第二个子图中绘制一条曲线:
```python
import matplotlib.pyplot as plt
fig, axs = plt.subplots(nrows=2, ncols=1)
axs[0].plot([1, 2, 3], [4, 5, 6])
axs[1].plot([1, 2, 3], [1, 4, 9])
plt.show()
```
这里使用了plt.subplots函数来创建一个2x1的子图,返回的是一个元组(fig, axs),其中fig表示整个图像,axs是一个一维数组,包含了每个子图的Axes对象。然后,通过axs[0]来获取第一个子图的Axes对象,并使用plot函数来绘制一条直线;通过axs[1]来获取第二个子图的Axes对象,并使用plot函数来绘制一条曲线。最后,使用plt.show()函数来显示图像。
阅读全文