barplot背后的情节线

and*_*ewj 6 plot r

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

以下代码完成此操作:

y <- c(1,2,3,5)
barplot(y)
abline(h=mean(y))
barplot(y, add=T)
Run Code Online (Sandbox Code Playgroud)

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

the*_*ail 11

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

y <- c(1,2,3,5)
barplot(rep(NA,length(y)),ylim=c(min(0,y),max(y)),axes=FALSE)
abline(h=mean(y))
barplot(y, add=T)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


mav*_*vam 7

如果你使用ggplot2,你不必担心这个.您的问题归结为geom顺序:

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

排在前面

相比下:

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

后面的线