首页 > 解决方案 > 将线图与熊猫中的水平条形图重叠

问题描述

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

有这样的数据框

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)

有了这个结果

在条形图上绘图

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

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

我有这个结果

在 barh 图上绘图

如何翻转线图使其与 barh 图一致=

谢谢你的任何提示!

标签: pythonpandasplotbar-chart

解决方案


您可以按如下方式重置索引和绘图。在这里,我将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)

输出

在此处输入图像描述


推荐阅读