2013-01-07 13 views
11

Może to brzmieć jak powtarzające się pytanie, ale mam nadzieję, że tak nie jest. W podstawowej funkcji histogramu R graphics, mamy opcję breaks="FD", która daje uzasadnioną wielkość binsize dla histogramu, czy mamy jakąś podobną prostą opcję dla ggplot2? A może jeszcze lepiej możemy użyć tej samej opcji w ggplot2?Jak zmienić "binwidth" w ggplot2?

rozumiem, że można regulować binwidth w geom_histogram, ale szukam bardziej prostszy sposób generowania estetycznie i rozsądna binsize.

+2

Czy można to obliczyć samodzielnie za pomocą 'nclass.FD', a następnie odpowiednio ustawić' binwidth' ...? – joran

+1

Nie sądzę, że w wielu przypadkach FD zapewnia rozsądne binoboty (to na ogół zbyt duże dla dużych zbiorów danych), co jest jednym z powodów, dla których nie jest wbudowany. – hadley

Odpowiedz

13
set.seed(42) 
x <- rnorm(1000) 
hist(x,breaks="FD") 

library(ggplot2) 
breaks <- pretty(range(x), n = nclass.FD(x), min.n = 1) 
bwidth <- breaks[2]-breaks[1] 
df <- data.frame(x) 
ggplot(df,aes(x))+geom_histogram(binwidth=bwidth,fill="white",colour="black") 
+1

Teoretycznie potrzebny jest parametr 'right = TRUE' – colinfang