[英]Stacked bar plot with seaborn or matplotlib, having hue
我想要一个堆积条形图,它的日期为 X,Y 上的值和未知数量的值相互堆叠。
该表如下所示:
Date,Type,Value
2022-08-01,Type1,5000
2022-09-01,Type1,5500
2022-10-01,Type1,6000
2022-08-01,Type2,50000
2022-09-01,Type2,55000
2022-10-01,Type2,60000
2022-08-01,Type3,20000
2022-09-01,Type3,18000
2022-10-01,Type3,19000
所以在这里,Type1、2 和 3 将相互堆叠。 我已经看到了 matplotlib 的示例,stacked=True,但这不允许hue=Type 。 另一方面,在 seaborn 中,我对类型使用了 hue 参数,但它没有堆栈栏版本。
实现这一目标的最简单方法是什么?
根据Seaborn 中堆叠条形图的 getup8 答案,您可以通过将histplot
与multiple='stack'
和weights=
结合使用来做到这一点。
权重:向量或数据中的键
如果提供,则通过这些因素对相应数据点对每个 bin 中的计数的贡献进行加权。
代码:
import pandas as pd
import seaborn as sns
df = pd.DataFrame({
'Date': ['2022-08-01', '2022-09-01', '2022-10-01', '2022-08-01', '2022-09-01', '2022-10-01', '2022-08-01', '2022-09-01', '2022-10-01'],
'Type': ['Type1', 'Type1', 'Type1', 'Type2', 'Type2', 'Type2', 'Type3', 'Type3', 'Type3'],
'Value': [5000, 5500, 6000, 50000, 55000, 60000, 20000, 18000, 19000]})
ax = sns.histplot(df, x='Date', hue='Type', weights='Value', multiple='stack')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.