2011-12-23 14 views
7

Próbowałem różnych sposobów, aby uzyskać facet_grid wykresów kołowych w ggplot2, aby zmieniać szerokość/promienie zgodnie z inną zmienną (siła).Wykresy kołowe w ggplot2 o zmiennych rozmiarach kołków

geom_bar przyjmuje szerokość = 0,5 jako parametr, ale jest ignorowany po dodaniu coord_polar. Adding width=0.5 do ggplot aes lub dodanie aes do geom_bar nie działa. Nie widzę żadnych innych istotnych opcji dla coord_polar. Jaki jest najłatwiejszy sposób na zrobienie tego? Poniższy kod tworzy ładną siatkę wykresów kołowych, ale nie zmienia rozmiarów wykresów kołowych. czego mi brakuje?

mydata <- data.frame(side1=rep(LETTERS[1:3],3,each=9),side2=rep(LETTERS[1:3],9,each=3),widget=rep(c("X","Y","Z"),9*3),val=runif(9*3),strength=rep(c(1,2,3),3,each=3)) 
ggplot(mydata, aes(x="",y = val, fill = widget, width = strength)) + 
geom_bar(position="fill") + facet_grid(side1 ~ side2) + 
coord_polar("y") + opts(axis.text.x = theme_blank()) 

Odpowiedz

18

Masz na myśli?

ggplot(mydata, aes(x=strength/2, y = val, fill = widget, width = strength)) + 
    geom_bar(position="fill", stat="identity") + 
    facet_grid(side1 ~ side2) + 
    coord_polar("y") + 
    opts(axis.text.x = theme_blank()) 

enter image description here

+0

To jest dokładnie to! Ma to sens teraz, że pręty muszą być wyrównane do lewej w systemie niepolarnym. Nadal nie mam pewności, dlaczego siła/2 jest magiczną liczbą, ale będzie musiała zrobić więcej czytania na temat tego, jak aes obsługuje x wartości w geom_bar. – hurfdurf

Powiązane problemy