2011-12-23 6 views
7

He intentado varias formas de obtener un facet_grid de gráficos circulares en ggplot2 para variar el ancho/radios según otra variable (resistencia).Gráficos circulares en ggplot2 con tamaños de tarta variables

geom_bar acepta width = 0.5 como parámetro pero se ignora una vez que se agrega coord_polar. Adding width=0.5 al ggplot aes o agregando un aes al geom_bar no funciona. No puedo ver ninguna otra opción relevante para coord_polar. ¿Cuál es la forma más fácil de hacer esto? El siguiente código hace una buena cuadrícula de gráficos circulares, pero no cambia el tamaño de los gráficos circulares. ¿Qué me estoy perdiendo?

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

Respuesta

18

¿Se refiere a esto?

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

eso es exactamente lo! Tiene sentido ahora, las barras tienen que estar alineadas a la izquierda en un sistema no polar. Todavía no estoy seguro de por qué strength/2 es el número mágico, pero tendré que leer un poco más sobre cómo aes maneja x values ​​en geom_bar. – hurfdurf

Cuestiones relacionadas