我正在尝试用线条图覆盖堆叠的条形图。在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秒内写完了这个图,但是花了太多时间试图找出问题所在。有人看过吗?
答案 0 :(得分:0)
简单地重置索引的数据类型就可以在这里为我实现窍门:
df1.index = df1.index.astype(str)
df2.index = df2.index.astype(str)
我在刻度线之间绘制Vline时,功能有些损失,但这似乎是我能找到的最佳解决方案。