python-3.x - 条形格式(种类)未显示正确的图(matplotlib)
问题描述
我需要使用三个变量进行绘图。其中一个应该在bar
格式(种类)的辅助 Y 轴上,其余变量(两个)应该使用简单的线在左轴上。但是,我得到了以下图表:
当我使用line
格式中的三个变量时,我得到了正确的图(这对于可视化分析不是很有用):
我使用我的数据中的一个小样本进行了快速测试(下面的代码)。bar
当我为第三张使用格式时,我得到了正确的图片。
我想知道,这是怎么回事?数据大小是否存在问题(我认为这不是因为我得到的行数少于 100 行)?
df2 = pd.DataFrame({'ind':[120.29, 125.45, 127.37, 130.39, 128.30],
'var1':[129.907990, 129.571185, 129.234380, 128.897574, 128.560769],
'var2':[-0.074037, -0.031806, -0.014426, 0.011578, -0.002028]})
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
df2['ind'].plot(ax=ax1)
df2['var1'].plot(ax=ax1)
df2['var2'].plot(kind='bar', ax=ax2, color='r')
plt.show()
PD:此外,我注意到在第三张照片中,线条在栏的后面。我该如何改变呢?
解决方案
我找到了解决方案(这个链接对我帮助很大)。基本上,它基于您之前设置的索引。
这是新代码:
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(df2.index, df2['ind'])
ax1.plot(df2.index, df2['var1'])
ax2.bar(df2.index, df2['var2'], color='r')
plt.show()
希望这可以帮助。
推荐阅读
- java - 将 RXJava groupby 与连续项目一起使用
- asp.net - 在 Asp.net Web 表单中等效的 MVC 异常过滤器
- javascript - 如何改进 Node.js 中的赋值代码(ES6 风格)
- excel - 如何同时使用 vlookup 和 If 语句来解决 Excel 中的问题?
- here-api - 在 Here API 中的渡轮上包括车辆公里成本
- plugins - 替代 Toast.Forms.Plugin for Xamarin Forms App
- ios - 如何将 NSValue 转换为 CLLocationCoordinate2D
- calendar - Instagram 浏览器不处理 ICS 链接
- r - 如何使用 R 指定图例的形状以匹配散点图中的组点?
- java - 使用 java 创建 Azure VM