8

我想创建一个条形图,其中条形图绘制在水平线的顶部。

下面的代码实现了这一点:

y <- c(1,2,3,5)
barplot(y)
abline(h=mean(y))
barplot(y, add=T)

但是,我担心 中的add=T参数barplot()如果重复使用,可能会引入打印伪影。我很好奇是否有上述代码的替代方法(尽管上述代码可能是最快的方法)。

4

2 回答 2

14

您可以在第一次通话中不绘制任何内容:

y <- c(1,2,3,5)
barplot(
  rep(NA, length(y)),
  ylim = pmax(range(y), 0),
  axes = FALSE
)
abline(h = mean(y))
barplot(y, add = TRUE)

条形图后面有水平线,根据需要

于 2012-11-28T04:34:16.017 回答
9

如果您使用 ggplot2,则不必担心这一点。您的问题归结为几何顺序:

ggplot(data.frame(x=1:4, y=y), aes(x=x, y=y)) + 
    geom_bar(stat="identity") + 
    geom_hline(yintercept=mean(y), color="red")

排在前面

相比下:

ggplot(data.frame(x=1:4, y=y), aes(x=x, y=y)) + 
    geom_hline(yintercept=mean(y), color="red") +
    geom_bar(stat="identity")

后面的线

于 2012-11-28T04:09:48.447 回答