2013-07-05 18 views
5

Jak wykreślić histogram "kroku" lub "klatki schodowej" w ggplot2 w R? takim jak:jak wykreślić histogramy kroków w ggplot2 w R?

enter image description here

gdzie szerokość każdej linii poziomej reprezentuje rozmiar pojemnik (z wartości oś x) i wysokość odpowiada frakcji danych, który mieści się w tym pojemniku (w przeciwieństwie do załączonego obraz, w którym jest to gęstość prawdopodobieństwa!). czy jest jakiś sposób na zrobienie tego z geom_histogram?

Odpowiedz

8

wygenerować pewne dane:

foo <- data.frame(bar=rnorm(100)) 

Histogram z etapu GEOM i oczekuje oś y:

ggplot(foo,aes(x=bar)) + stat_bin(geom="step") 

Histogram z etapem GEOM i gęstości na oś y:

ggplot(foo,aes(x=bar)) + stat_bin(aes(y=..density..),geom="step") 

I z „frakcją danych, które wpada do tego kosza”:

ggplot(foo,aes(x=bar)) + stat_bin(aes(y=..count../sum(..count..)),geom="step") 

enter image description here

2

Może to być inne, ładniejsze sposoby na zrobienie tego, ale oto jeden pomysł.

foo <- data.frame(bar = rnorm(100)) + theme_bw() 
p <- ggplot(data = foo, aes(x = bar, y = ..count../sum(..count..))) ## or aes(x = bar, y = ..density..) if you want that 
p + geom_histogram(size = 2, colour = "red", fill = "white") + geom_histogram(colour = "transparent", fill = "white") 

enter image description here

Edit:

geom_histogram(size = 2, colour = "red", fill = "white") tworzy to enter image description here

edytowany grubość obrysu do size = 2 aby ostateczne wyjście wyglądają ładnie. Na tym etapie wygląda okropnie. Aby usunąć wewnętrzne linie dodawane geom_histogram(colour = "transparent", fill = "white") który przyciągnie kolejną histogram na szczycie obejmujące wewnętrzne linie (i niektóre z zarysem dlatego myślę size = 2 ładnie wygląda)

+0

mógłbyś wyjaśnić dlaczego istnieją dwa połączenia do 'geom_histogram'? – user248237dfsf

+0

@ user248237dfsf Po prostu usuń drugi i zobacz, co się stanie. To powinno być oczywiste. – Roland

+0

@Roland: Rozumiem, że to jest sztuczka, aby spróbować uzyskać odpowiedni kolor/stepshape ... ale nie widzę, jak uogólnić to na przypadek, w którym 'color' jest ustawiony na zmienną w df, aby zakodować różne warunki . – user248237dfsf

Powiązane problemy