带有水平标记的Barplot和R中的星号(ggplot等)

时间:2013-10-23 02:33:51

标签: r plot ggplot2

使用R的标准图或更好的GGPLOT, 有没有办法创建这样的情节? 请特别注意所选栏上的水平线 上面有星号。

enter image description here

1 个答案:

答案 0 :(得分:1)

我不知道在ggplot2中注释这样的图表的简单方法。这是一种相对通用的方法来制作您需要绘制的数据。您可以使用类似的方法来根据需要注释关系。我将使用iris数据集作为示例:

library(ggplot2)
library(plyr) #for summarizing data

#summarize average sepal length by species
dat <- ddply(iris, "Species", summarize, length = mean(Sepal.Length))

#Create the data you'll need to plot for the horizontal lines
horzlines <- data.frame(x    = 1, 
                        xend = seq_along(dat$Species)[-1],
                        y    = seq(from = max(dat$length), by = 0.5, length.out = length(unique(dat$Species))-1),
                        yend = seq(from = max(dat$length), by = 0.5, length.out = length(unique(dat$Species))-1),
                        label = c("foo", "bar")
)

ggplot() + 
  geom_histogram(data = dat, aes(Species, length), stat = "identity") +
  geom_segment(data = horzlines, aes(x = x, xend = xend, y = y, yend = yend)) +
  geom_text(data = horzlines, aes(x = (x + xend)/2, y = y + .25, label = label))

给你这样的东西:

enter image description here