matplotlib绘制多图
时间: 2023-11-12 18:58:58 浏览: 38
可以使用subplot函数来绘制多个子图。subplot函数的参数包括行数、列数、子图编号,例如subplot(2, 2, 1)表示将画布分成2行2列,当前子图为第1个。下面是一个简单的例子:
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
plt.subplot(2, 2, 1)
plt.plot(x, y1)
plt.title('sin(x)')
plt.subplot(2, 2, 2)
plt.plot(x, y2)
plt.title('cos(x)')
plt.subplot(2,2, 3)
plt.plot(x, y3)
plt.title('tan(x)')
plt.show()
```
这段代码将画布分成2行2列,分别绘制了sin(x)、cos(x)、tan(x)三个函数的图像。
相关问题
matplotlib绘制多张子图
使用matplotlib库可以方便地绘制多张子图。可以使用plt.subplots函数创建一个包含多个子图的图形对象,然后使用这些子图对象进行绘制。下面是两个示例代码:
示例一:
```
import matplotlib.pyplot as plt
fig, ax = plt.subplots(nrows=2, ncols=2, figsize=(10, 10))
ax = ax.ravel(order='C')
# 在每个子图对象上绘制图像
for i in range(figure_num):
ax[i].imshow(mpimg.imread(img[i]))
ax[i].set_title(labels[i], fontsize=40)
ax[i].set_xticks([])
ax[i].set_yticks([])
plt.tight_layout()
plt.savefig('C:Users\Administrator\Desktop\Figure_2')
plt.show()
```
示例二:
```
import matplotlib.pyplot as plt
figure, ax = plt.subplots(nrows=2, ncols=2, figsize=(10, 10))
# 在每个子图对象上绘制图像
ax
matplotlib绘制多个子图
要在同一张图中绘制多个子图,可以使用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()函数来显示图像。