我需要使用三个变量进行绘图。其中之一应位于bar
格式的辅助Y轴(种类)上,其余变量(两个)应使用简单的线条位于左侧轴上。但是,我得到了以下图表:
当我使用line
格式的三个变量时,我得到了正确的绘图(对于视觉分析不是很有用):
我使用数据中的一小部分样本进行了快速测试(下面的代码)。当我将bar
格式用于第三张图片时,我得到了正确的图片。
我想知道,这是怎么回事?数据大小是否有问题(我认为BCS的行数少于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:此外,我注意到在第三个图片中,该线位于标尺后面。我该如何更改?
答案 0 :(得分:1)
我找到了解决方案(这个link帮助了我很多)。基本上,它基于您之前设置的索引。
这是新代码:
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()
希望这会有所帮助。