Mam dane, które są w większości wyśrodkowane w niewielkim zakresie (1-10), ale istnieje znaczna liczba punktów (np. 10%), które są w (10-1000). Chciałbym wykreślić histogram dla tych danych, które skupią się na (1-10), ale również pokażą dane (10-1000). Coś w rodzaju skali logarytmicznej dla histogramu.W jaki sposób można wykreślić histogram długich danych za pomocą R?
Tak, wiem, to znaczy nie wszystkie pojemniki są jednakowej wielkości
Prosty hist(x)
daje podczas hist(x,breaks=c(0,1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2,3,4,5,7.5,10,15,20,50,100,200,500,1000,10000)))
daje
z których żadna nie jest to, co chcę.
aktualizacja następujące odpowiedzi tutaj teraz produkować coś, co jest prawie dokładnie to, co chcę (I poszedł z ciągłym działki zamiast bar-histogram):
breaks <- c(0,1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2,4,8)
ggplot(t,aes(x)) + geom_histogram(colour="darkblue", size=1, fill="blue") + scale_x_log10('true size/predicted size', breaks = breaks, labels = breaks)![alt text][3]
Jedynym problemem jest chciałbym dopasować skalę i faktyczne pręty, które zostały narysowane. Są dwie opcje: po prostu użyj rzeczywistych marginesów kreślonych taktów (jak?), Następnie uzyskaj "brzydkie" etykiety osi X, takie jak 1.1754,1.2985 itd. Drugim, który wolę, jest kontrolowanie faktycznego wykorzystują marginesy na baty, aby dopasować przerwy.
@Marek moje pytanie logować oś x (lub podobną), nie wartości (oś y) –
@David My bad. Cofnięcie;) – Marek
możliwy duplikat: http://stackoverflow.com/questions/1245273/histogram-with-logarithmic-scale –