2013-07-18 10 views
12

Sto analizzando alcuni dati con matplotlib. Voglio che la trama si concentri su un intervallo specifico di valori x, quindi sto usando set_xlim().Perché set_xlim() non imposta i limiti x nella mia figura?

Approssimativamente, il mio codice simile a questo:

fig=plt.figure() 
ax=fig.add_subplot(111) 
for ydata in ydatalist: 
    ax.plot(x_data,y_data[0],label=ydata[1]) 
ax.set_xlim(left=0.0,right=1000) 
plt.savefig(filename) 

Quando guardo la trama, la gamma x finisce per essere da 0 a 12000. Ciò si verifica se set_xlim() si verifica prima o dopo il plot() . Perché set_xlim() non funziona in questa situazione?

+1

Si potrebbe provare 'plt.xlim (...)' ... Mi ricordo di graffiare la mia testa troppo, pochi mesi fa ;-) – tamasgal

+1

ho fatto un semplice esempio test utilizzando numeri interi casuali da 0 a 2000 e 'ax.set_xlim 'limita correttamente l'asse x da 0 a 1000 per me. – GWW

+0

Due persone hanno lasciato delle buone risposte che sono state cancellate. – Dan

risposta

7

Per curiosità, per quanto riguarda il passaggio nel vecchio xmin e xmax?

fig=plt.figure() 
ax=fig.add_subplot(111) 
ax.plot(x_data,y_data) 
ax.set_xlim(xmin=0.0, xmax=1000) 
plt.savefig(filename) 
+0

Funziona perfettamente. Dato che sto usando una vecchia versione di matplotlib, questo è quasi sicuramente il problema. – Dan

9

Il testo di questa risposta è stato preso da una risposta che è stata cancellata quasi immediatamente dopo la sua pubblicazione.

set_xlim() limita i dati visualizzati sul grafico.

Per modificare i limiti dell'asse, utilizzare set_xbound().

fig=plt.figure() 
ax=fig.add_subplot(111) 
ax.plot(x_data,y_data) 
ax.set_xbound(lower=0.0, upper=1000) 
plt.savefig(filename) 
Problemi correlati