Matplotlib如何在两个y轴上绘图

时间:2017-12-08 18:57:04

标签: matplotlib

我尝试了以下代码,尝试在两个轴和一个图中绘制两条曲线。但我只能看到一条曲线,我做错了什么?

import matplotlib.pyplot as plt            
PlotFigure_1 = plt.figure()            
ax1 = PlotFigure_1.add_subplot(111)
par1 = ax1.twinx()
ax1.cla()
par1.cla()  
x=[1, 2, 3, 4]
y=[1, 2, 3, 5]
ax1.plot(x, y, 'r')
x1=[1, 2, 3, 4]
y1=[10, 20, 30, 50]
par1.plot(x1, y1, 'b')
plt.subplots_adjust(right=0.75) # was 0.7 try 
plt.show()

1 个答案:

答案 0 :(得分:0)

第一行隐藏在第二行之后。

因为y1 == 10 * y,曲线具有相同的“形状”。但是每个y轴都是独立缩放的,因此曲线位于相应位置 relative 到它们各自的轴。数据相差10倍,但y轴的范围也是如此,即par1.get_ylim() == 10 * ax1.get_ylim()

为了证明这一点,您可以:

  1. 强制轴相对于其数据具有不同的范围,例如,通过执行ax1.set_ylim(0, 6)
  2. 在每个轴上绘制数据,其中至少有一些点具有不同的线性因子(例如,使用y1 = [10, 20, 30, 60])。