我想创建一个带有ggplot2的条形图,其中x轴的离散值将被分组为子组(参见图片 - 图片来自网络我还没有图表的代码)。
感谢您的帮助!
答案 0 :(得分:8)
两种方法:
示例数据:
dat <- data.frame(value=runif(26)*10,
grouping=c(rep("Group 1",10),
rep("Group 2",10),
rep("Group 3",6)),
letters=LETTERS[1:26])
head(dat)
value grouping letters
1 8.316451 Group 1 A
2 9.768578 Group 1 B
3 4.896294 Group 1 C
4 2.004545 Group 1 D
5 4.905058 Group 1 E
6 8.997713 Group 1 F
没有分面:
ggplot(dat, aes(grouping, value, fill=letters, label = letters)) +
geom_bar(position="dodge", stat="identity") +
geom_text(position = position_dodge(width = 1), aes(x=grouping, y=0))
使用facetting:
ggplot(dat, aes(letters,value, label = letters)) +
geom_bar(stat="identity") +
facet_wrap(~grouping, scales="free")
Facetting具有明显的优势,即不必沉溺于标签的定位。