2017-12-08 15 views
0

次のコードを試してみました。2つの曲線を2つの軸と1つのグラフにプロットしようとしました。しかし、私は1つの曲線しか見ることができません。Matplotlib 2つのy軸にプロットする方法

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() 
+0

'ax1.set_ylim(0、10)'を実行するとどうなりますか? – bnaecker

+0

ヘルプbnaeckerをありがとう、これは単に他の後ろに隠されています。 – Tom

+0

ようこそ。問題を解決した場合は、回答を受け入れ済みとマークすることをお勧めします。 – bnaecker

答えて

0

最初の行は2番目の行の後ろに隠れています。

y1 == 10 * yのため、カーブは同じ「シェイプ」です。しかし、各y軸は独立してスケーリングされるので、曲線はそれぞれの軸に対して同じ位置にあるの相対値になります。データは10のファクタだけ異なるが、Y軸の範囲も同様にpar1.get_ylim() == 10 * ax1.get_ylim()である。自分自身にこれを証明するために

、次のことができます。

  1. ax1.set_ylim(0, 6)を行うことによって、例えば、そのデータに対して異なるエクステントを持つように軸を強制します。
  2. 少なくともいくつかのポイント(例えば、y1 = [10, 20, 30, 60]を使用)に対して異なる線形因子が存在する各軸のデータをプロットします。
関連する問題