Sto provando a disegnare parte di un istogramma usando matplotlib.istogrammi normalizzati matplotlib
Invece di disegnare l'intero istogramma che ha molti valori anomali e valori elevati, voglio concentrarmi solo su una piccola parte. L'istogramma originale si presenta così:
hist(data, bins=arange(data.min(), data.max(), 1000), normed=1, cumulative=False)
plt.ylabel("PDF")
E dopo la focalizzazione che appare così:
hist(data, bins=arange(0, 121, 1), normed=1, cumulative=False)
plt.ylabel("PDF")
Si noti che l'ultimo bidone è allungata e peggiore di tutti i tick Y sono scalati in modo che la somma sia esattamente 1 (quindi i punti fuori dal range corrente non vengono presi in considerazione per tutti)
So che posso ottenere ciò che voglio disegnando l'istogramma sull'intero intervallo possibile e quindi limitando l'asse alla parte a cui sono interessato, ma si perde un sacco di tempo calcolando i raccoglitori che non lo farò usare/vedere comunque.
hist(btsd-40, bins=arange(btsd.min(), btsd.max(), 1), normed=1, cumulative=False)
axis([0,120,0,0.0025])
Esiste un modo semplice e veloce per disegnare proprio la regione mirata, ma ancora ottenere la scala Y corretta?
Come sarebbero i valori normati essere calcolato senza prendere l'intero insieme di dati in considerazione? In generale, i valori dell'istogramma devono essere calcolati in modo che l'integrale della curva sia 1, non semplicemente dividendo per il numero di punti. – chthonicdaemon
In assenza di una funzione che descrive la distribuzione, il meglio che puoi fare è contare il numero di punti e dividere di conseguenza. – cdecker