在ggplot中使用barplot而不会被群组折叠

时间:2016-05-21 12:35:37

标签: r ggplot2 label bar-chart

我想使用ggplot来创建条形图,但不能通过(分类)x聚合观察结果。例如,这就是我想要的R基础系统:

library(ggplot2) 
data <- data.frame(lab = c("a", "b", "b", "c", "a"),
                   val = c(2, 5, 6, 3, 1))

barplot(data$val, names.arg = data$lab)

这就是我想要的: enter image description here

但是,如果我使用ggplot,这就是我得到的:

ggplot(data, aes(lab, val)) + geom_bar(stat = "identity")

enter image description here

使用ggplot获取我想要的情节的正确方法是什么?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在lab值上创建一个新变量作为x,然后重新标记它们。

ggplot(data, aes(as.character(seq_along(lab)), val)) + geom_bar(stat = "identity") + 
  scale_x_discrete("lab", labels = c("1" = "a", "2" = "b", "3" = "b", "4" = "c", "5" = "a"))

enter image description here