2011-12-23 14 views
7

Bir başka değişkene (güç) göre genişlik/yarıçapı değiştirmek için ggplot2 içinde facet_grid pasta grafikler elde etmek için çeşitli yollar denedim.Değişken pasta boyutları ile ggplot2 içinde pasta grafikleri

geom_bar parametre olarak width = 0.5 değerini kabul eder ancak coord_polar eklendiğinde yoksayılır. aes ggplot'a Adding width=0.5 veya aes eklendiğinde geom_bar çalışmaz. coord_polar için başka ilgili seçenekler göremiyorum. Bunu yapmanın en kolay yolu nedir? Aşağıdaki kod, pasta grafikleriyle ilgili güzel bir ızgara oluşturuyor ancak pasta grafiklerinin boyutlarını değiştirmiyor. Neyi kaçırıyorum?

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()) 

cevap

18

Bunu mu demek istediniz?

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()) 
aynen öyle

enter image description here

+0

! Şimdi mantıklı geliyor, çubuklar polar olmayan bir sistemde sola hizalanmalıdır. Gücün/2'nin sihirli sayı neden açık olduğu konusunda biraz emin değilim, ancak aes'in geom_bar'daki x değerlerini nasıl işlediğine dair daha fazla okuma yapmak zorunda kalacağım. – hurfdurf