熊猫堆积的条形图问题

时间:2020-05-21 01:25:34

标签: pandas matplotlib

我正在尝试用线条图覆盖堆叠的条形图。在vscode jupyter笔记本中运行pandas 0.25.3。我已经使用下面相对标准的方法用不同的数据集绘制了无数次-但是在这种情况下,我只能绘制出后者的matplot对象

fig, ax = plt.subplots()
ax2=ax.twinx()
df1.plot(kind='bar',stacked=True, ax=ax)
df2.plot(ax=ax2,linestyle='-', marker='o')

df1和df2在设计上具有相同的索引。我还尝试将这些合并,以防是驱动问题以及使用secondary_y的组合,将ax2对象设置为matplot对象。我也尝试了以下解决方法,并尝试简化为主轴上的条形图。辅助折线图和主折线图也可以很好地绘制,因此基础数据也没有问题(nan free等)

pandas DataFrame how to mix bar and line plots with different scales

数据的形式如下(连接时)-其中col3是折线图,col1和col2是堆叠的条形图

idx   col1    col2    col3
1.0    0.2    0.8    0.6
2.0    0.1    0.9    0.52
3.0    0.1    0.9    0.5
4.0    0.05    0.95    0.43

此网站上有许多类似的问题,但对于初学者来说,它们往往更多。我是否缺少版本兼容性问题?我已经在30秒内写完了这个图,但是花了太多时间试图找出问题所在。有人看过吗?

1 个答案:

答案 0 :(得分:0)

简单地重置索引的数据类型就可以在这里为我实现窍门:

df1.index = df1.index.astype(str)
df2.index = df2.index.astype(str)

我在刻度线之间绘制Vline时,功能有些损失,但这似乎是我能找到的最佳解决方案。