matplotlib怎么将多个图表用一个窗口展示
时间: 2024-02-12 10:09:48 浏览: 25
在Matplotlib中,可以使用子图(subplot)来将多个图表绘制在同一张画布上。通过使用子图,可以将一个画布分成多个网格,然后在不同的网格中绘制不同的图表。
下面是一个绘制多个图表的示例:
``` python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 2*np.pi, 50)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
# 创建画布和子图
fig, axs = plt.subplots(2, 2, figsize=(8, 6))
# 在第一个子图中绘制正弦函数
axs[0, 0].plot(x, y1)
axs[0, 0].set_title('Sine')
# 在第二个子图中绘制余弦函数
axs[0, 1].plot(x, y2)
axs[0, 1].set_title('Cosine')
# 在第三个子图中绘制正切函数
axs[1, 0].plot(x, y3)
axs[1, 0].set_title('Tangent')
# 在第四个子图中绘制正弦函数和余弦函数
axs[1, 1].plot(x, y1, label='Sine')
axs[1, 1].plot(x, y2, label='Cosine')
axs[1, 1].legend()
axs[1, 1].set_title('Sine and Cosine')
plt.tight_layout() # 自动调整子图之间的间距
plt.show()
```
在上述代码中,我们使用`plt.subplots`函数创建了一个包含4个子图的画布,并将其存储在`fig`和`axs`变量中。然后,我们在不同的子图中绘制了不同的函数,并设置了各自的标题。最后,我们使用`plt.tight_layout()`函数调整了子图之间的间距,以便子图布局更加紧凑。最后,我们使用`plt.show()`函数显示了整个图表。