2015-03-05 13 views
8

Mi chiedo se ci sia un trucco (migliore) per invertire un istogramma cumulativo in matplotlib.Trucchi per ottenere istogramma cumulativo ordine inverso in matplotlib

Diciamo che ho alcuni punteggi nell'intervallo da 0.0 a 1.0, dove 1.0 è il miglior punteggio. Ora, sono interessato a tracciare quanti campioni sono al di sopra di una determinata soglia di punteggio.

import numpy as np 
import matplotlib.pyplot as plt 

d = np.random.normal(size=1000) 
d = (d - d.min())/(d.max() - d.min()) 

plt.hist(d, 50, histtype="stepfilled", alpha=.7) 

enter image description here

Per impostazione predefinita, matplotlib avrebbe tracciare l'istogramma cumulativo come con 'numero di campioni < = punteggio'

plt.hist(d, 50, histtype="stepfilled", alpha=.7, cumulative=True) 

enter image description here

Quello che acutally voglio è cumulativo istogramma non mostra 'numero di campioni < = punteggio' ma 'numero di campioni> = punteggio'

Potrei farlo in questo modo, ma come potrei eliminare il segno "meno" sull'asse x?

plt.hist(d-1, 50, histtype="stepfilled", alpha=.7, cumulative=True) 

enter image description here

un'idea migliore?

risposta

10

Abbastanza sicuro si può semplicemente utilizzare cumulative=-1 nella funzione chiamata:

plt.hist(d, 50, histtype="stepfilled", alpha=.7, cumulative=-1) 

Dal hist matplotlib() docs:

if Valuta cumulativi a meno di 0 (ad esempio, -1) , la direzione di accumulazione è invertita.

Dai un'occhiata alla terza immagine di esempio here; Penso che faccia quello che vuoi.

+0

Grazie, è esattamente quello che volevo. – Sebastian

Problemi correlati