1、使用表格数据,按以下要求使用matplotlib绘制图表(要求3个子图绘制在一个画布,子图出现覆盖可输入运行代码plt.tight_layout()): (1)将画布规划成2X1的区域,在索引为1
时间: 2024-12-18 14:21:58 浏览: 10
python使用matplotlib:subplot绘制多个子图的示例
首先,你需要安装matplotlib库,如果你还没有安装,可以使用pip进行安装:
```bash
pip install matplotlib
```
然后,我们可以使用matplotlib中的`subplots`函数创建一个包含三个子图的画布,并通过调整参数实现2x1布局。下面是一个简单的示例,展示了如何按照你的要求绘制图表:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建一个2x1的网格
fig, axs = plt.subplots(2, 1, figsize=(8, 6), constrained_layout=True) # 使用constrained_layout保证子图之间有足够的间距
# 对于每个子图
for i, ax in enumerate(axs.flat):
index = i + 1 # 索引从1开始计数
# 示例数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
if index == 1:
ax.plot(x, y1, 'r', label='sin(x)')
ax.plot(x, y2, 'b', label='cos(x)', linestyle='--')
ax.set_title('Subplot 1') # 设置第一个子图标题
elif index == 2:
ax.scatter(x, y1+y2, s=50, c=y1, cmap='viridis') # 绘制散点图
ax.set_title('Subplot 2')
ax.legend() # 显示图例
# 设置子图标签和坐标轴
ax.set_xlabel('X-axis')
ax.set_ylabel(f'Subplot {index}')
ax.tick_params(labelbottom=False if i == 1 else True)
# 调整整个图像的布局
plt.tight_layout()
# 显示图形
plt.show()
```
在这个例子中,我们分别绘制了一个正弦和余弦线的子图1,以及一个散点图的子图2。记得根据实际数据替换示例中的数学函数和样式。
阅读全文