【发布时间】:2021-02-27 15:46:24
【问题描述】:
我正在尝试在 Matplotlib 中创建堆叠条形图。我使用 Pandas 创建了一个简单的,但我现在对 Matplotlib 感兴趣,但无法使其工作。
我的数据
ShiftType ShiftNumber cnt
0 Non-Standard 1.0 154478
1 Non-Standard 2.0 140421
2 Non-Standard 3.0 159990
3 Standard 1.0 211100
4 Standard 2.0 198652
5 Standard 3.0 190857
使用 Pandas 工作的代码。
df.groupby(by=['ShiftType','ShiftNumber']).size().rename('cnt').unstack().plot(kind='bar', stacked=True)
plt.legend(title='Shift Numbers', bbox_to_anchor=(1.0, 1), loc='upper left')
我怎样才能基于 Matplotlib 得到这个?
【问题讨论】:
-
pandas使用 matplotlib 进行绘图,因此显然您可以在 matplotlib 中重新创建它。但这听起来像是一个 x-y 问题。捕获轴对象以进行进一步的图像处理ax = df.groupby(by=['ShiftType','...().plot(kind='bar', stacked=True),然后更改轴对象,例如ax.tick_params(axis='x', labelrotation=45)。顺便说一句,您的示例代码似乎不正确 - 它没有总结cnt部分。
标签: python python-3.x pandas matplotlib