我有一个数据集,长这样(假设Clicked
有4个类别,head(10)
只显示了2个类别):
Rank Clicked
0 2.0 Cat4
1 2.0 Cat4
2 2.0 Cat4
3 1.0 Cat1
4 1.0 Cat4
5 2.0 Cat4
6 2.0 Cat4
7 3.0 Cat4
8 5.0 Cat4
9 5.0 Cat4
这是一段返回此图的代码:
eee = (df.groupby(['Rank','Clicked'])['Clicked'].count()/df.groupby(['Rank'])['Clicked'].count())
eee.unstack().plot.bar(stacked=True)
plt.legend(['Cat1','Cat2','Cat3','Cat4'])
plt.xlabel('Rank')
有没有办法使用seaborn(或者matplotlib)实现这个,而不是使用pandas绘图能力?我尝试了几种方法,包括运行seaborn代码和预处理数据集使其格式正确,但都没有成功。
df.groupby(['Rank'])['Clicked'].value_counts(normalize=True).unstack().plot(kind='bar', stacked=True)
。 - Trenton McKinney**kwargs
将任何内容传递给底层的matplotlib调用。但是!我经常不得不阅读seaborn代码才能确切地弄清楚如何做到这一点,并且找到matplotlib的样式选项可能更容易。 - cphlewis