Pandas-堆积条形图,带有独立/不相关的条形分区

时间:2017-12-15 01:38:56

标签: pandas visualization

我想创建一个堆积条形图,其中条形图的分区独立于另一个条形图。例如,假设我有2盒球。 (编号......)方框1有3个红色,5个蓝色和8个黄色球。方框2有2个橙色,6个绿色,9个紫色和10个黑球。

现在,我想创建一个堆积条形图,每个框都有一个条形图,在每个条形图中,我可以显示特定颜色的滚珠数。根据盒子的不同,球的颜色也不同,所以我想在条形图中标记这些分组。

在我的特定情况下,我有5个箱子,并且在每个箱子中,有8-12个(不同的)分组。

这可能看起来不是最好的图表类型,所以你会推荐另一种图表/情节类型吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

当然,让我们试试这段代码:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'box':[1]*3+[2]*4,'color':['red','blue','yellow','orange','green','purple','black'],
                  'Value':[3,5,8,2,6,9,10]})
df

输出:

   Value  box   color
0      3    1     red
1      5    1    blue
2      8    1  yellow
3      2    2  orange
4      6    2   green
5      9    2  purple
6     10    2   black

现在,让我们重塑并策划:

df.set_index(['box','color']).unstack()['Value']\
  .plot(kind='bar', stacked=True, color=df.color.sort_values().tolist(), figsize=(15,8))

输出: enter image description here