如何使用pandas绘制按类别拆分的多分组并排柱状图?
操作步骤
- 第一步:导入依赖库
import pandas as pd import matplotlib.pyplot as plt
- 第二步:计算双维度分组的平均得分
对position、target_class两个字段做分组聚合,计算Points的平均值,再转换为行是position、列是target_class的宽表结构:
# 此处替换为你自己的原始DataFrame变量名 avg_df = df.groupby(['position', 'target_class'])['Points'].mean().unstack(fill_value=0)
这里的fill_value=0可以把不存在的组合默认填充为0,避免出现缺失柱的情况。
- 第三步:绘制并排分组柱状图
直接调用pandas内置的绘图接口即可自动生成分组并排效果:
avg_df.plot( kind='bar', figsize=(8,5), # 自定义图表尺寸 rot=0 # 取消x轴标签旋转,可根据需要调整角度 ) # 补充图表标注 plt.xlabel('球员位置') plt.ylabel('平均得分') plt.title('各位置不同类别球员平均得分对比') plt.legend(title='目标类别') plt.show()
执行以上代码就能得到你要的分组并排柱状图,每个位置对应2个柱子分别展示target_class为0和1的平均得分。
内容的提问来源于stack exchange,提问作者Hman
相关产品推荐
相关产品推荐

