web-dev-qa-db-ja.com

ipython:現在のfigure()へのアクセスを取得します

プロットされたグラフにもっときめの細かいグリッドを追加したい。問題は、すべての例で軸オブジェクトへのアクセスが必要なことです。既にプロットされたグラフに特定のグリッドを追加したい(ipython内から)。

Ipythonで現在の図と軸にアクセスするにはどうすればよいですか?

16
sten

plt.gcf()は現在の図を取得します

plt.gca()は現在の軸を取得します

43
runDOSrun

とともに plt?の例(ipython --pylab

In [44]: x=np.arange(0,5,.1)
In [45]: y=np.sin(x)
In [46]: plt.plot(x,y)
Out[46]: [<matplotlib.lines.Line2D at 0xb09418cc>]

figure 1;ハンドルを取得する:

In [47]: f=plt.figure(1)

In [48]: f
Out[48]: <matplotlib.figure.Figure at 0xb17acb2c>

およびその軸のリスト:

In [49]: f.axes
Out[49]: [<matplotlib.axes._subplots.AxesSubplot at 0xb091198c>]

現在の(そして唯一の)軸のグリッドをオンにします:

In [51]: a=f.axes[0]
In [52]: a.grid(True)

私はしばらくの間pltを使用していませんでしたので、プロットを作成してタブ補完を検索するだけでこのようなものを見つけましたか?ありそうなもの。これはpltドキュメントでも利用可能であると確信しています。

または、最初にFigureを作成し、そのハンドルをつかむことができます

In [53]: fig=plt.figure()
In [55]: ax1=fig.add_subplot(2,1,1)
In [56]: ax2=fig.add_subplot(2,1,2)

In [57]: plt.plot(x,y)
Out[57]: [<matplotlib.lines.Line2D at 0xb12ed5ec>]

In [58]: fig.axes
Out[58]: 
[<matplotlib.axes._subplots.AxesSubplot at 0xb0917e2c>,
 <matplotlib.axes._subplots.AxesSubplot at 0xb17a35cc>]

そして、gcfgca(現在の図/軸を取得)があります。メモリが正しい場合、MATLABと同じです。

In [68]: plt.gca()
Out[68]: <matplotlib.axes._subplots.AxesSubplot at 0xb17a35cc>
In [66]: plt.gcf()
Out[66]: <matplotlib.figure.Figure at 0xb091eeec>

(これらはサイドバーリンクで使用されます: Matplotlib.pyplot-図の軸を非アクティブにします。/図の軸はサブプロットの軸と重なります

8
hpaulj