python如何一个fig图中绘制五个子图并且能调节子图间隔和大小
时间: 2024-02-25 18:59:42 浏览: 91
可以使用`matplotlib`库中的`subplots`函数来实现在一个`fig`图中绘制多个子图,并且可以通过参数调节子图的间隔和大小。
下面是一个例子:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建一个 2 行 3 列的子图,子图之间的间隔为 0.2,整个图的大小为 (8, 6)
fig, axs = plt.subplots(2, 3, figsize=(8, 6), dpi=100, constrained_layout=True)
fig.subplots_adjust(wspace=0.4, hspace=0.4)
# 绘制第一个子图
x = np.linspace(0, 10, 100)
y = np.sin(x)
axs[0, 0].plot(x, y)
axs[0, 0].set_title('Sin(x)')
# 绘制第二个子图
x = np.linspace(0, 10, 100)
y = np.cos(x)
axs[0, 1].plot(x, y)
axs[0, 1].set_title('Cos(x)')
# 绘制第三个子图
x = np.linspace(0, 10, 100)
y = np.tan(x)
axs[0, 2].plot(x, y)
axs[0, 2].set_title('Tan(x)')
# 绘制第四个子图
x = np.linspace(0, 10, 100)
y = np.exp(x)
axs[1, 0].plot(x, y)
axs[1, 0].set_title('Exp(x)')
# 绘制第五个子图
x = np.linspace(0, 10, 100)
y = np.log(x)
axs[1, 1].plot(x, y)
axs[1, 1].set_title('Log(x)')
# 隐藏第六个子图
axs[1, 2].axis('off')
# 显示图形
plt.show()
```
在上面的代码中,我们使用`subplots`函数创建了一个 2 行 3 列的子图,子图之间的间隔为 0.2,整个图的大小为 (8, 6)。然后,我们在不同的子图中绘制了不同的函数,并给每个子图设置了标题。其中,`constrained_layout=True`可以自动调节子图之间的间距,使得子图不会相互重叠。
需要注意的是,在绘制子图之前必须要调用`subplots_adjust`来调节子图之间的间隔,否则子图之间会重叠在一起。此外,如果想要控制整个图形的大小,可以通过`figsize`参数来设置。
阅读全文