Matplotlib:現在の数値を設定する方法は?


83

これは簡単な質問だといいのですが、現時点では理解できません。matplotlibを使用して2つの図を表示し、それらをインタラクティブに使用したいと思います。私は以下でフィギュアを作成します:

import matplotlib
import pylab as pl

f1 = pl.figure()
f2 = pl.figure()

また、MATLABのようなpyplotインターフェイスを使用して、両方の図をプロットおよび描画できます。と

current_figure = pl.gcf()

クリックした図に応じて、pyplotインターフェイスで現在アクティブな図を特定できます。次に、pyplotインターフェイスを使用して最初の図に何かを描画したいのですが、現在の図はどちらでもかまいません。だから何かのようなものがあります

pl.set_current_figure(figure)

または回避策はありますか?(私はオブジェクト指向インターフェースを使用できることを知っていますが、インタラクティブなものには、plot(x、y)のようなコマンドを使用する方がはるかに優れています)

回答:


93

次の方法でf1、Figureを新しい現在のFigureとして簡単に設定できます。

pl.figure(f1.number)

もう1つのオプションは、図に名前(または番号)を付けることです。これにより、コードが読みやすくなります。

pl.figure("Share values")
# ... some plots ...
pl.figure("Profits")
# ... some plots ...

pl.figure("Share values")  # Selects the first figure again

実際、図の「数字」は文字列にすることができます。文字列は、単純な数字よりも明らかに明確です。

PS:のpyplotに相当するのpylab.figure()matplotlib.pyplot.figure()です。


1
pylabの代わりにmatplotlib.figure.Figureを使用してこれを行う良い方法はありますか?
tylerthemiler 2011

@tylerthemiler:はい、でもそうでしょうmatplotlib.pyplot.figure()
Eric O Lebigot 2011

軸で同じことをしたい場合は、pylab.sca(my_axis)(「現在の軸を設定」)を使用してください。
PiHalbe 2013年

14

各図に番号を付けます。

f1 = pl.figure(1)
f2 = pl.figure(2)
# use f2
pl.figure(1) # make f1 active again
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.