Круговые диаграммы в ggplot2 с переменными размерами - PullRequest
7 голосов
/ 23 декабря 2011

Я пробовал различные способы получения facet_grid круговых диаграмм в ggplot2 для изменения ширины / радиуса в соответствии с другой переменной (силой).

geom_bar принимает ширину = 0,5 в качестве параметра, но игнорируется при добавлении coord_polar. Adding width=0.5 на ggplot aes или добавление aes к geom_bar не работает. Я не вижу других соответствующих параметров для coord_polar. Какой самый простой способ сделать это? Приведенный ниже код создает хорошую сетку круговых диаграмм, но не меняет размеры круговых диаграмм. Чего мне не хватает?

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

1 Ответ

19 голосов
/ 23 декабря 2011

Вы имеете в виду, как это?

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

...