我有一个数据框,想通过在 x 轴上显示日期和在 y 轴上显示数量来创建堆积条形图。这是当前的数据框:
date | product_group | quantity
2021-10-01 | A | 10
2021-10-01 | C | 10
2021-10-01 | Z | 80
2021-11-11 | A | 13
2021-12-12 | B | 5..
我正在尝试使用我拥有的 matplotlib 或 seaborn 获得此输出:
这里最好的方法是什么?任何建议表示赞赏。谢谢
histplot
:
sns.histplot(df, y='date', weights='quantity', hue='product_group', multiple='stack')
如果你不想使用 seaborn 而是 matplotlib,你可以这样做:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({
'date': ['2021-10-01']*3 + ['2021-11-11', '2021-11-12'],
'product_group': ['A', 'C', 'Z', 'A', 'B'],
'quantity': [10,10,80,13,5]
})
# pivot values into columns for stacked plot
df = df.pivot(index='date', columns='product_group', values='quantity')
# create percentages
df.div(df.sum(axis=1),axis=0).plot.barh(stacked=True)