【发布时间】:2017-06-15 22:59:09
【问题描述】:
pandas 数据框有以下形式,其中Year 是索引:
A:Cat1 A:Cat2 B:Cat1 B:Cat2 B:Cat3
Year
1977 0.5 0.25 0.15 0.1 0.1
1981 0.2 NaN 0.40 0.1 0.2
1983 0.1 0.10 0.30 0.2 0.3
重要的是,您在两个不同的“超类别”A 和 B 中拥有相同的类别 Cat1 和 Cat2。为了绘制所有类别的变化,我使用堆叠图并使用两组不同的颜色对于每个超类别。所有这些颜色都保存在列表colors中。
我现在正在做的绘制图表是(plt 是 pyplot):
plt.stackplot(data.index.values,data.fillna(0).T.values,colors=colors,labels=data.columns.values)
plt.legend(loc="best")
这与之前的数据一起给出了以下内容:
现在,我想做的是避免在图例中重复超类别 A 和 B,方法是为每个超类别创建两个不同的图例,或者在同一个图例中设置子标题。我查看了有关子标题的this other question,但关键是我希望能够指定图例两列之间的断点,因此仅指定ncol=2 不起作用,因为它不会在右侧中断点,因为我在每个«supercategory»中没有相同数量的类别。
【问题讨论】:
标签: python pandas matplotlib plot