如何调整Pandas柱状图:以mean、median为X轴,按Won/Lost分组配色?
调整柱状图布局与分组颜色的解决方案
我来帮你搞定这个可视化需求!你当前的代码生成的图表,X轴是Won/Lost,柱子对应mean和median——但你想要反过来:X轴显示mean和median,按Won/Lost分组用不同颜色区分。咱们可以通过两个简单步骤实现:
1. 转置聚合后的DataFrame
原代码里groupby.agg的结果,索引是result(也就是Won/Lost),列是统计量mean和median。我们需要用.T转置这个DataFrame,让统计量变成索引(对应X轴),Won/Lost变成列(对应分组)。
2. 自定义分组颜色
在plot方法里通过color参数指定每个分组的颜色,你可以根据喜好选择颜色代码或名称,让不同分组的柱子一目了然。
完整代码示例
import matplotlib.pyplot as plt # 聚合数据并转置,调整结构以匹配需求 aggregated_data = df.groupby('result')['col_A'].agg(['mean', 'median']).T # 绘制分组柱状图并指定颜色 aggregated_data.plot( kind='bar', color={'Won': '#27ae60', 'Lost': '#e74c3c'}, # 自定义Won为绿色,Lost为红色 figsize=(8, 5) # 可选:调整图表大小 ) # 可选:添加图表细节优化 plt.title('Mean & Median of col_A by Result') plt.xlabel('Statistic Type') plt.ylabel('col_A Value') plt.legend(title='Match Result') plt.xticks(rotation=0) # 让X轴标签横向显示,更易读 plt.show()
效果说明
转置后的DataFrame结构完美契合你的需求:X轴会显示mean和median,每个X位置上有两个柱子,分别对应Won和Lost的统计值,并且用你指定的颜色区分开。如果不需要自定义颜色,Matplotlib会自动分配默认配色,但手动指定颜色能让图表的表意更清晰。
内容的提问来源于stack exchange,提问作者Edamame
相关产品推荐
相关产品推荐

