fig, ax = plt.subplots(2,1,figsize=(10,10))
时间: 2025-03-20 14:00:58 浏览: 40
### 使用 Matplotlib 创建 2x1 子图布局并设置 figsize 的示例
在 Matplotlib 中,可以通过调用 `plt.subplots()` 函数来创建子图布局。对于 2x1 布局(即两行一列),可以传递参数 `(2, 1)` 给该函数以指定所需的行列数。此外,还可以通过 `figsize` 参数自定义整个图形的大小。
以下是实现此功能的一个完整代码示例:
```python
import matplotlib.pyplot as plt
import numpy as np
# 定义数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建 2x1 子图布局,并设置 figsize
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(8, 10))
# 在第一个子图上绘制 sin 曲线
ax1.plot(x, y1, label='sin(x)', color='blue')
ax1.set_title('Sine Wave')
ax1.set_xlabel('X-axis')
ax1.set_ylabel('Y-axis')
ax1.legend()
# 在第二个子图上绘制 cos 曲线
ax2.plot(x, y2, label='cos(x)', color='red')
ax2.set_title('Cosine Wave')
ax2.set_xlabel('X-axis')
ax2.set_ylabel('Y-axis')
ax2.legend()
# 调整布局以防止重叠
plt.tight_layout()
plt.show()
```
上述代码展示了如何使用 `subplots()` 方法创建一个具有两个垂直排列子图的布局[^1]。其中,`figsize=(8, 10)` 设置了整体图像的高度和宽度分别为 8 英寸和 10 英寸。每个子图分别用于展示不同的曲线——正弦波和余弦波[^3]。
#### 关键点说明
- **`plt.subplots(nrows, ncols)`**: 这里的 `nrows=2`, `ncols=1` 表明我们希望得到的是上下分布的两张图表。
- **`figsize` 参数**: 控制最终输出图片的整体尺寸,单位为英寸。可以根据实际需求调整这些数值。
- **`tight_layout()` 函数**: 自动优化各部分之间的间距,从而避免文字或元素之间发生冲突[^2]。
阅读全文
相关推荐


















