私は、2つのy軸を持つ図形を作成し、(異なる関数からの)コード内の異なる点でそれらの軸のそれぞれに複数の曲線を追加したいと考えています。第二の機能で、私はすでに作成された軸のそれぞれに曲線を追加したい、今すぐmatplotlib:既存のtwinx()軸のハンドルを取得する方法は?
import matplotlib.pyplot as plt
from numpy import *
# Opens new figure with two axes
def function1():
f = plt.figure(1)
ax1 = plt.subplot(211)
ax2 = ax1.twinx()
x = linspace(0,2*pi,100)
ax1.plot(x,sin(x),'b')
ax2.plot(x,1000*cos(x),'g')
# other stuff will be shown in subplot 212...
:最初の関数で
は、私はフィギュアを作成def function2():
# Get handles of figure, which is already open
f = plt.figure(1)
ax3 = plt.subplot(211).axes # get handle to 1st axis
ax4 = ax3.twinx() # get handle to 2nd axis (wrong?)
# Add new curves
x = linspace(0,2*pi,100)
ax3.plot(x,sin(2*x),'m')
ax4.plot(x,1000*cos(2*x),'r')
を今私問題は、第1のコードブロックに追加された緑色のカーブは、第2のブロックが実行された後では見えなくなっていることである(他はすべてそうである)。
私はこの理由は、私の2番目のコードブロック内
ax4 = ax3.twinx()
ラインだと思います。おそらく、既存のものにハンドルを返す代わりに新しいtwinx()を作成します。
プロット内の既存のツイン軸に対するハンドルを正しく取得するにはどうすればよいですか?
第1の関数で作成された軸を保存し、第2の軸で使用するのはなぜですか? – pingul