我试图创建一个多重分组的条形图,但我还没弄清楚如何获得正确的布局。 我创建了一个至少显示正确的东西,但条形是垂直而不是水平。
代码:
sex <- c('F', 'F', 'F', 'F', 'F','M','M','M','M')
type <-c('XL1','XL1','XL1','XL2','XL2','XL2','XL2','XL2','XL2')
ID <- c(1,2,3,4,5,6,7,8,9)
smoke <- c('yes','yes','no','yes','no','yes','no','no','yes')
improved <- c(12,9.8,13,4,7,9,6.5,12.2,-1)
dat <- as.data.frame(cbind(sex,type,ID,smoke,improved))
base <- ggplot(dat, aes(fill = interaction(sex,type,smoke))) +
geom_bar(position = 'dodge',stat='identity')
base + aes(x = factor(ID), y=improved) +
facet_grid(.~type+sex, scales = "free_x", space = "free")
问题是我有另一个分组变量,除了类型和性别,所有三个变量都在真实数据集长标签中。我可以将它们旋转90度,但我更喜欢将整个图形旋转90度而flip_coord()不起作用...... this thread末尾提到的解决方案并不是很好。另外,因为分组变量位于右侧而不是左侧。
我很感激任何建议。 谢谢,
安雅
答案 0 :(得分:0)
我很困惑为什么coord_flip()
无法工作?
base <- ggplot(dat, aes(fill = interaction(sex,type,smoke))) + geom_bar(position = 'dodge',stat='identity')
base <- base + aes(x = factor(ID), y=improved) + facet_grid(.~type+sex, scales = "free_x", space = "free")
base <- base + coord_flip()
您可以使用以下方法调整图例位置:
base <- base + theme(legend.position = "bottom")
给出了:
也许这样的事情会更合适,传说中有两列:
base <- base + theme(legend.position = "bottom") + guides(fill = guide_legend(ncol=2))
给出了: