以下是一个使用Python和Matplotlib库来生成按组别划分的条形图及平均线的示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 假设有3个组别和每个组别的数据
groups = ['A', 'B', 'C']
data = {
'A': [25, 30, 35, 40, 45],
'B': [15, 20, 25, 30, 35],
'C': [10, 15, 20, 25, 30]
}
# 计算每个组别的平均值
averages = {group: np.mean(data[group]) for group in groups}
# 创建图形和子图
fig, ax = plt.subplots()
# 定义每个组别的条形图位置
bar_positions = np.arange(len(groups))
# 绘制每个组别的条形图
# 使用bar函数绘制条形图,bar_positions作为x坐标,data[group]作为高度
# align='center'将条形图的中心和bar_positions对齐
ax.bar(bar_positions, [np.mean(data[group]) for group in groups], align='center')
# 绘制平均线
# 使用plot函数绘制一条水平的线,x坐标从0到len(groups),y坐标为各组别的平均值
ax.plot([0, len(groups)], [averages[group] for group in groups], linestyle='--', color='red')
# 设置x轴标签和标题
ax.set_xticks(bar_positions)
ax.set_xticklabels(groups)
ax.set_xlabel('Groups')
ax.set_ylabel('Values')
ax.set_title('Bar Chart with Average Line')
# 显示图形
plt.show()
这段代码会生成一个按组别划分的条形图,每个组别的条形图高度代表该组别对应数据的平均值,并在图中添加了一条红色的虚线表示各组别的平均值。你可以根据实际情况修改数据和图形的样式来满足你的需求。
上一篇:按组别划分的频率