2016-07-16 211 views
6

Voglio aggiungere più grana fine su un grafico tracciato. Il problema è che tutti gli esempi richiedono l'accesso all'oggetto asse. Voglio aggiungere una griglia specifica al grafico già tracciato (dall'interno di ipython).ipython: accesso alla figura corrente()

Come accedere alla figura e all'asse corrente in ipython?

risposta

6

Con l'esempio plt? (supponendo 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>] 

display figure 1; ottenere il manico con:

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

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

e un elenco dei suoi assi:

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

attivare la griglia per la corrente (e solo) asse:

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

non ho usato il plt per un po ', quindi ho trovato questa roba semplicemente facendo la trama e cercando il completamento della tablatura e? per cose probabili. Sono abbastanza sicuro che questo è disponibile anche nella documentazione di plt.

In alternativa, è possibile creare la figura prima, e aggrapparsi a suo manico

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>] 

E c'è gcf e gca (ottenere corrente Figura/asse). Come in MATLAB se la mia memoria è corretta.

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

(questi sono utilizzati nel collegamento barra laterale: Matplotlib.pyplot - Deactivate axes in figure. /Axis of figure overlap with axes of subplot)

18

plt.gcf() per ottenere dato attuale

plt.gca() per ottenere all'asse corrente