2009-10-02 15 views
8

otrzymuje następujące ggplot2 wykres:Hrabia przez czynnik wykresie ggplot2

ggplot(my_data, aes(colour=my_factor) + 
       geom_point(aes(x=prior, y=current)) + 
       facet_grid(gender ~ age) 

Chciałbym, aby wielkość punktów jest proporcjonalna do liczebności my_factor dla tego uprzedniego/kombinacji prądu.

ggplot(my_data, aes(colour=my_factor, 
       size=<something-here>(my_factor)) + 
       geom_point(aes(x=prior, y=current)) + 
       facet_grid(gender ~ age) 

Wszelkie pomysły?

== Edit ==

Oto bardzo trywialny przykład oparty na zbiorze mpg. Zdefiniujmy "great_hwy" jako autostradzie> 35, a "great_cty" jako Cty> 25:

mpg$great_hwy[mpg$hwy > 35] <-1 
mpg$great_hwy[mpg$hwy <= 35] <-0 
mpg$great_hwy <- factor(mpg$great_hwy) 

mpg$great_cty[mpg$cty > 25] <- 1 
mpg$great_cty[mpg$cty <= 25] <- 0 
mpg$great_cty <- factor(mpg$great_cty) 

Jeśli wykreślić great_hwy vs. great_cty, to nie powie nam wiele:

ggplot(mpg) + geom_point(aes(x=great_cty, y=great_hwy)) 

Jak czy mogę zwiększyć punkty danych w zależności od liczby punktów x/y? Mam nadzieję, że to wyjaśni, ale daj mi znać inaczej.

+1

Mała próbka danych byłaby bardzo pomocna tutaj ... możesz wybrać jedną z? Zestawów danych, jeśli chcesz. – Shane

+1

Nie rozumiem, co masz na myśli przez "liczbę mysiącego czynnika dla tej wcześniejszej/aktualnej kombinacji". Czy istnieje więcej niż jeden punkt danych dla każdego x/y? Szukasz rozwiązania problemu nadmiernego plądrowania? Czy masz na myśli coś innego? – Harlan

+0

@Shane, pracuję nad lepszym przykładem zgodnie z Twoją sugestią. @Harlan, istnieje wiele punktów danych dla każdego x/y. Chciałbym wykreślić jeden punkt danych dla każdego x/y, i chcę, żeby rozmiar wspomnianego punktu danych był proporcjonalny do liczby par x/y. – hgmnz

Odpowiedz

20

Z pewnością możesz to zrobić, licząc zewnętrznie do ggplot, ale jedną z wielkich zalet ggplota jest to, że możesz wykonać wiele z tych statystyk wewnętrznie!

Korzystanie z przykładu mpg powyżej:

ggplot(mpg) + 
    geom_point(aes(x=great_cty, y=great_hwy, 
       size=..count..), stat="bin") 

alt text

+0

To świetne rozwiązanie. Dzięki! – Shane

+0

Dokładnie tego, czego szukałem. Wygląda na to, że * większość * samochodów nie jest świetna pod względem przebiegu w mieście i na autostradzie;) – hgmnz

+0

Możesz również sprawdzić tę stronę, aby upewnić się, że rozmiar punktów jest taki, jak myślisz (obszar?): http://had.co.nz/ggplot2/scale_size.html Myślę, że proporcjonalne obszary są tradycyjnie preferowane w stosunku do promieni proporcjonalnych. –

Powiązane problemy