【发布时间】:2020-11-04 20:35:18
【问题描述】:
我正在尝试绘制有关某个地区 5 个地区的特定行业的家庭收入部分的图表信息。
我使用 groupby 按地区对数据框中的信息进行排序:
df = df_orig.groupby('District')['Portion of income'].value_counts(dropna=False)
df = df.groupby('District').transform(lambda x: 100*x/sum(x))
df = df.drop(labels=math.nan, level=1)
ax = df.unstack().plot.bar(stacked=True, rot=0)
ax.set_ylim(ymax=100)
display(df.head())
District Portion of income
A <25% 12.121212
25 - 50% 9.090909
50 - 75% 7.070707
75 - 100% 2.020202
由于此收入属于分类,我想以合乎逻辑的方式对堆叠条中的元素进行排序。 Pandas 生成的图表如下。现在,排序(从每个栏的底部开始)是:
- 25 - 50%
- 50 - 75%
- 75 - 100%
- 不确定
我意识到这些是按字母顺序排序的,我很好奇是否有办法设置自定义排序。为了直观起见,我希望顺序是(同样,从栏的底部开始):
- 不确定
- 25 - 50%
- 50 - 75%
- 75 - 100%
然后,我想翻转图例以显示此顺序的相反顺序(即,我希望图例顶部有 75 - 100,因为这将是条形顶部的值)。
【问题讨论】:
-
您能否在
code-formatted text中提供一些起始样本数据? 5-10 行就足够了。
标签: python pandas matplotlib plot