在上面代码的基础上改进:对每一组分别绘制叠加柱状图,并保存图像
时间: 2024-04-11 16:33:20 浏览: 84
要对每一组分别绘制叠加柱状图并保存图像,您可以使用循环遍历每一组,并根据组的唯一标识进行命名和保存图像。以下是修改后的代码示例:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取Excel表格
df = pd.read_excel('your_excel_file.xlsx')
# 根据A、C列组合进行分组
grouped = df.groupby(['A', 'C'])
# 遍历每一组
for name, group in grouped:
# 对当前组按D列升序排列
sorted_group = group.sort_values('D')
# 绘制叠加柱状图
fig, ax = plt.subplots()
width = 0.35
x = range(len(sorted_group))
ax.bar(x, sorted_group['H'], width, label='H')
ax.bar(x, sorted_group['I'], width, bottom=sorted_group['H'], label='I')
ax.set_xticks(x)
ax.set_xticklabels(sorted_group.index)
ax.legend()
# 保存图像
filename = f"group_{name}.png" # 根据组的唯一标识生成文件名
plt.savefig(filename)
plt.close()
print(f"保存图像 {filename}")
print("所有图像已保存")
```
这段代码在原有基础上添加了循环遍历每一组的部分。在每一次循环中,根据组的唯一标识生成文件名,并使用`plt.savefig()`保存图像。最后,输出保存成功的消息。请确保在运行代码之前替换`your_excel_file.xlsx`为您的Excel文件路径。
阅读全文