次のコードは2つの PostScript (.ps)ファイルにプロットしますが、2番目のファイルには両方の行が含まれています。
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.subplot(111)
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("first.ps")
plt.subplot(111)
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")
Matplotlibに2番目のプロットで新たに開始するように指示するにはどうすればよいですか?
たとえば、figure
を使用して新しいプロットを作成したり、最初のプロットの後にclose
を使用したりできます。
明確な図コマンドがあり、それはあなたのためにそれを行う必要があります:
plt.clf()
同じ図に複数のサブプロットがある場合
plt.cla()
現在の軸をクリアします。
David Cournapeauから述べられているように、figure()を使用します。
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.figure()
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("first.ps")
plt.figure()
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")
または、同じプロットの異なる位置のsubplot(121)/ subplot(122)。
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
plt.subplot(121)
x = [1,10]
y = [30, 1000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.subplot(122)
x = [10,100]
y = [10, 10000]
plt.loglog(x, y, basex=10, basey=10, ls="-")
plt.savefig("second.ps")
最初のplt.plotの前にplt.hold(False)
と入力するだけで、元のコードをそのまま使用できます。
Matplotlibをインタラクティブに使用している場合、たとえばWebアプリケーション(ipythonなど)で探している場合は、
plt.show()
plt.close()
またはplt.clf()
の代わりに。
どれも機能していない場合は、これを確認してください。たとえば、それぞれの軸に沿ってデータのxおよびy配列があるかどうかを確認してください。次に、xとyを空に初期化したセル(jupyter)をチェックインします。これは、多分、データを再初期化せずにxとyに追加しているためです。したがって、プロットにも古いデータがあります。確認してください。