如何使用python(Pandas)堆积条形集群

所以这是我的数据集的样子:


In [1]: df1=pd.DataFrame(np.random.rand(4,2),index=["A","B","C","D"],columns=["I","J"])


In [2]: df2=pd.DataFrame(np.random.rand(4,2),index=["A","B","C","D"],columns=["I","J"])


In [3]: df1

Out[3]: 

          I         J

A  0.675616  0.177597

B  0.675693  0.598682

C  0.631376  0.598966

D  0.229858  0.378817


In [4]: df2

Out[4]: 

          I         J

A  0.939620  0.984616

B  0.314818  0.456252

C  0.630907  0.656341

D  0.020994  0.538303

我希望每个数据帧都有堆积条形图,但由于它们具有相同的索引,我希望每个索引有2个堆叠条形。


我试图在同一轴上绘制两个:


In [5]: ax = df1.plot(kind="bar", stacked=True)


In [5]: ax2 = df2.plot(kind="bar", stacked=True, ax = ax)

但它重叠。


然后我尝试先连接两个数据集:


pd.concat(dict(df1 = df1, df2 = df2),axis = 1).plot(kind="bar", stacked=True)

但这里一切都堆积如山


我最好的尝试是:


 pd.concat(dict(df1 = df1, df2 = df2),axis = 0).plot(kind="bar", stacked=True)

这使 :


在此输入图像描述


这基本上是我想要的,除了我想要的酒吧订购


(df1,A)(df2,A)(df1,B)(df2,B)等......


我想有一个技巧,但我找不到它!


在@ bgschiller的回答之后我得到了这个:


在此输入图像描述


这几乎是我想要的。我希望通过索引对条形图进行聚类,以便在视觉上清晰。


额外:x标签不是多余的,如:


df1 df2    df1 df2

_______    _______ ...

   A          B

谢谢你的帮助。


LEATH
浏览 632回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python