for column in df3.columns: fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 4)) # 创建一个包含两个子图的画布 # 绘制直方图,并调整为水平方向 df3[column].hist(ax=axes[0], bins=10, orientation='horizontal') axes[0].set_title(f'Histogram of {column}') axes[0].grid(False) # 去掉网格线 # 绘制箱线图,并调整为水平方向 df3[column].plot.box(ax=axes[1]) axes[1].set_title(f'Boxplot of {column}') axes[1].grid(False) # 去掉网格线 # 调整布局 plt.tight_layout() plt.show()添加代码,保存以上图片
时间: 2025-06-25 20:14:19 浏览: 17
在你的代码中,可以通过 `matplotlib` 的 `savefig` 方法保存生成的图片。我们可以在每个循环结束时,将当前生成的图表保存到指定路径下。以下是修改后的代码:
```python
import os
# 假设保存图片的文件夹路径为 'plots'
output_folder = 'plots'
if not os.path.exists(output_folder):
os.makedirs(output_folder) # 如果文件夹不存在,则创建它
for column in df3.columns:
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 4)) # 创建一个包含两个子图的画布
# 绘制直方图,并调整为水平方向
df3[column].hist(ax=axes[0], bins=10, orientation='horizontal')
axes[0].set_title(f'Histogram of {column}')
axes[0].grid(False) # 去掉网格线
# 绘制箱线图,并调整为水平方向
df3[column].plot.box(ax=axes[1])
axes[1].set_title(f'Boxplot of {column}')
axes[1].grid(False) # 去掉网格线
# 调整布局
plt.tight_layout()
# 保存图片
output_path = os.path.join(output_folder, f'{column}_plots.png')
plt.savefig(output_path, dpi=300, bbox_inches='tight') # dpi设置分辨率,bbox_inches确保布局完整
# 显示图片
plt.show()
```
### 上述代码解释:
1. **创建输出文件夹**:通过 `os.makedirs` 确保保存图片的文件夹存在。
2. **保存图片**:使用 `plt.savefig` 方法保存当前生成的图表。参数说明如下:
- `dpi=300`:设置保存图片的分辨率为 300 DPI。
- `bbox_inches='tight'`:确保图片内容不会被裁剪。
- `output_path`:动态生成保存路径,以列名为基础命名图片。
3. **显示图片**:调用 `plt.show()` 展示图表。
这样,每次循环都会生成两张图表(直方图和箱线图),并保存为一张图片。
---
###
阅读全文
相关推荐


















