我有一个包含列的数据集:“月份”、“类别”和“盈利能力”。我使用下面的方法来计算每个月和类别的“盈利能力”总和
q1=df.groupby(['Month','Category'])['Profitability'].sum()
这是我得到的结果
Month Category
1 Cosmetics 2685.9000
First Aid 2128.0200
Magazine 703.8900
Supplements 37005.6200
Toiletries 1893.0600
2 Cosmetics 2569.0600
First Aid 3282.7850
Magazine 679.1100
Supplements 36647.8800
Toiletries 1357.7500
3 Cosmetics 1350.7925
First Aid 2238.3100
Magazine 371.1200
Supplements 21444.0900
Toiletries 1226.1600
我想用条形图来表示它们。可视化这些分类数据的最佳方法是什么
准备步骤是使用单个列转换数据帧 并将多索引转换为具有“正常”索引和独立的 每个类别的列:
或者,如果数据源是系列(不是数据帧),则运行:
结果是,更适合作为图形源:
绘制图形的基本方法是采用y轴的线性比例。 绘制它的代码是:
最后一条指令将图例向右“移动”一点(比较 设置为默认位置),否则会模糊某些条形图(尝试绘制 没有此说明)
结果是:
但是请注意,supplelements的条比 其他类别,这是非常低的
这就是为什么我提出了第二个解决方案,基于逻辑算法尺度 在y轴上:
最后4条指令更改y轴上的默认刻度,如我的 认为默认勾号(尝试绘制)的可读性更好 没有这4行的图形(用于比较)
结果是:
现在比较容易比较条的高度,y勾号是粗略选择的 在勾选(n-1)*3的基础上
编辑
如果希望图例具有标题,请添加
title='Category'
ax.legend(...)
指令的参数,以上面的任一项为准 您选择的解决方案相关问题 更多 >
编程相关推荐