2016-07-16 8 views
6

Я хочу добавить больше мелкозернистой сетки на графике. Проблема заключается в том, что все примеры требуют доступа к объекту оси. Я хочу добавить определенную сетку в уже построенный график (изнутри ipython).ipython: получить доступ к текущей цифре()

Как получить доступ к текущей фигуре и оси в ipython?

ответ

6

С 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.

Или вы можете создать фигуру первым, и повесить на ручку

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

И есть gcf и gca (получить текущий рисунок/ось). То же, что и в 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 - Deactivate axes in figure. /Axis of figure overlap with axes of subplot)

18

plt.gcf(), чтобы получить текущую фигуру

plt.gca(), чтобы получить текущую ось