【发布时间】:2018-06-29 18:57:57
【问题描述】:
我有一些数据想直接在一个图形上绘制。一组具有不同的 y 范围。看来我可以使用plt 绘制具有相同y 范围的两组,或者使用ax2 = ax1.twinx() 绘制具有不同范围的两组,但不能全部绘制三个。有什么鬼鬼祟祟的方法吗?
编辑:
显然它并不像答案看起来那么容易!
def plot_data2(a = 0 , b = 0, c = 0 ):
fig, ax1 = plt.subplots(figsize = (18,8))
ax2 = ax1.twinx()
ax1.plot(a, 'b')
ax1.plot(b, 'g')
ax2.plot(c, 'r')
fig.tight_layout()
plt.show()
plot_data(a=data1, b=data2)
所以虽然我现在可以很好地一起打印三个图表。我也希望能够选择只打印任意两个。
我本来想问为什么轴没有缩放,但现在当我输入它时,我意识到这是因为我将默认值指定为 0,所以它会拉伸图形。有没有办法只打印两个图表并将它们都缩放以适应?以及相应地更新轴标签。我想我可以在函数内部写几个if,但我希望有更优雅的方式。
哦,还有一件事! x 和 y 的范围不同呢?
【问题讨论】:
-
可能有用:
https://matplotlib.org/gallery/ticks_and_spines/multiple_yaxis_with_spines.html