python如何控制子图的大小
时间: 2023-07-26 19:49:33 浏览: 103
在 Matplotlib 中,我们可以使用 `plt.subplots()` 函数创建一个画布和多个子图,然后使用 `ax.set_position()` 方法来控制每个子图的大小和位置。下面是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)
# 创建画布和子图
fig, axs = plt.subplots(1, 2, figsize=(10, 4))
# 在第一个子图中绘制曲线
axs[0].plot(x, y, color='red', label='Data 1')
# 在第二个子图中绘制散点图
axs[1].scatter(x, y, color='blue', label='Data 2')
# 设置图例
axs[0].legend()
axs[1].legend()
# 调整第一个子图的大小和位置
axs[0].set_position([0.1, 0.1, 0.4, 0.8])
# 调整第二个子图的大小和位置
axs[1].set_position([0.6, 0.1, 0.4, 0.8])
# 显示图像
plt.show()
```
在这个例子中,我们创建了一个包含两个子图的画布,并在每个子图中绘制了一个数据系列。我们使用 `set_position()` 方法控制了每个子图的大小和位置。其中,`set_position()` 方法接受一个元组作为参数,表示子图的位置和大小,依次为左边距、底部边距、宽度和高度,单位是相对值,范围是 0 到 1。在这个例子中,我们将第一个子图的左边距设置为 0.1,底部边距设置为 0.1,宽度设置为 0.4,高度设置为 0.8;将第二个子图的左边距设置为 0.6,底部边距设置为 0.1,宽度设置为 0.4,高度设置为 0.8。最后,我们使用 `show()` 函数显示整个图像。
阅读全文