2013-04-05 15 views
11

pyplot.hist() la documentazione specifica che quando si imposta un intervallo per un istogramma "i valori anomali inferiori e superiori vengono ignorati".Creazione di pyplot.hist() primo e ultimo bin contiene valori anomali

È possibile impostare il primo e l'ultimo scomparto di un istogramma includendo tutti i valori anomali senza modificare la larghezza del contenitore?

Ad esempio, supponiamo di voler esaminare l'intervallo 0-3 con 3 bin: 0-1, 1-2, 2-3 (ignoriamo i casi di uguaglianza esatta per semplicità). Vorrei che il primo raccoglitore includesse tutti i valori da meno infinito a 1 e l'ultimo raccoglitore includesse tutti i valori da 2 a infinito. Tuttavia, se imposto in modo esplicito questi raccoglitori per coprire tale intervallo, saranno molto ampi. Mi piacerebbe che avessero la stessa larghezza. Il comportamento che sto cercando è come il comportamento di hist() in Matlab.

Ovviamente posso numpy.clip() i dati e la trama che, che mi darà quello che voglio. Ma sono interessato se esiste una soluzione integrata per questo.

+4

Suona come si dispone di una soluzione a due-line ('numpy.clip(); pyplot.hist()') e che ci si vuole un one-liner. Mentre suppongo che una parola chiave 'clip' su' hist() 'sarebbe carina, penso che nessuno si sia preso la briga di implementarlo perché è così basilare. Naturalmente, puoi sempre inviare una patch a matplotlib :-). – Evert

+1

Sì, @Evert ha ragione, la clip è la soluzione migliore. Direi che 'pyplot.hist()' non crea questo probabilmente perché genera trame fuorvianti se non è annotato con attenzione. – askewchan

+0

@Evert ok, grazie. Volevo solo vedere che non mi manca una soluzione migliore per ottenere questo comportamento. – Bitwise

risposta

6

N. Guardando a matplotlib.axes.Axes.hist e l'uso diretto di numpy.histogram Sono abbastanza fiducioso nel dire che non esiste una soluzione più intelligente rispetto all'utilizzo di clip (oltre all'estensione dei contenitori con cui si istogramma).

l'invitiamo a guardare il sorgente di matplotlib.axes.Axes.hist (è solo codice Python, anche se cron certamente è leggermente più complessa di quanto la maggior parte dei metodi Assi) - è il modo migliore per verificare questo tipo di domanda .

HTH

Problemi correlati