我想创建一个堆积条形图,其中条形图的分区独立于另一个条形图。例如,假设我有2盒球。 (编号......)方框1有3个红色,5个蓝色和8个黄色球。方框2有2个橙色,6个绿色,9个紫色和10个黑球。
现在,我想创建一个堆积条形图,每个框都有一个条形图,在每个条形图中,我可以显示特定颜色的滚珠数。根据盒子的不同,球的颜色也不同,所以我想在条形图中标记这些分组。
在我的特定情况下,我有5个箱子,并且在每个箱子中,有8-12个(不同的)分组。
这可能看起来不是最好的图表类型,所以你会推荐另一种图表/情节类型吗?
谢谢!
答案 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))