在Pandas中将线形图与水平条形图重叠

时间:2018-09-20 11:26:08

标签: python pandas plot bar-chart

我正在尝试在熊猫中将线图与水平条形图重叠。

具有这样的数据框

data = pd.DataFrame(np.random.randint(0,100,size=(10, 4)), columns=list('ABCD'))

我可以将图形与条形图重叠,如下所示:

ax = data[['A','B','C']].plot(kind='bar', stacked=True)
data['D'].plot(color='k',ax=ax)

有这个结果

Plot on a bar plot

但是当我尝试使用水平条形图时

ax = data['D'].plot(color='k')
data[['A','B','C']].plot(kind='barh', stacked=True, ax=ax)

我有这个结果

Plot on a barh plot

如何翻转线图,使其与Barh图一致?

谢谢您的提示!

1 个答案:

答案 0 :(得分:1)

您可以按以下方式重设索引和绘图。在这里,我将D列的值用作x值,并将index(值的范围)用作y值。通过使用reset_index(),您可以添加一列索引,从而可以轻松使用y='index'进行绘图。

import pandas as pd
data = pd.DataFrame(np.random.randint(0,100,size=(10, 4)), columns=list('ABCD')).reset_index()
ax = data.plot(x='D', y='index', color='k', legend=False)
data[['A','B','C']].plot(kind='barh', stacked=True, ax=ax)

输出

enter image description here