【问题标题】:Bar plot with groupby带 groupby 的条形图
【发布时间】:2018-06-22 15:02:43
【问题描述】:

我的分类变量case_satus 具有四个唯一值。我有 2014 年到 2016 年的数据。我想绘制按年份分组的 case_status 的分布。我尝试使用:

df.groupby('year').case_status.value_counts().plot.barh()

我得到以下情节:

我想要的是更好的表现形式。例如,我每年都有一种颜色,所有的“DENIED”都会彼此相邻。

我认为它可以实现,因为 groupby 对象是一个多索引,但我对它的理解不够好,无法创建我想要的情节。


解决办法是:

df.groupby('year').case_status.value_counts().unstack(0).plot.barh()

结果

【问题讨论】:

  • 有没有办法对图中的值进行排序?例如,在这种情况下,从下到上,您将有 Certified、Certified-withdrawn、Withdrawn、Denied。谢谢!

标签: pandas matplotlib seaborn


【解决方案1】:

我认为您需要为DataFrame 添加unstack

df.groupby('year').case_status.value_counts().unstack().plot.barh()

也是可能的变化级别:

df.groupby('year').case_status.value_counts().unstack(0).plot.barh()

【讨论】:

  • .unstack(0) 做了我想要的
  • 超级 ;) 很高兴能帮上忙!
  • @jezrael 有没有办法对图中的值进行排序?例如,在这种情况下,从下到上,您将有 Certified、Certified-withdrawn、Withdrawn、Denied。谢谢!
猜你喜欢
  • 2017-03-12
  • 2017-03-11
  • 2022-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-14
相关资源
最近更新 更多