在 R 中的绘图中添加垂直线连接点到水平线

Add vertical lines connecting point to a horizontal line in a plot in R

我正在 R 中绘制一些自相关值:

  plot(y=lag[2:N],x=1:(N-1), xlab="lag",ylab="Autocorrelation",ylim=c(-1,1), pch=16,col="red")
  abline(h=0, col="black")
  abline(h=up, col="blue")
  abline(h=low, col="blue")

这是我的代码,这是我在 R 中得到的

但是,我想要像下图这样的东西,我用红线将点连接到 0 处的水平线。

知道怎么做吗?

可以用type = "h"加竖线,然后分别加点

plot(y=lag[2:N],x=1:(N-1), xlab="lag",ylab="Autocorrelation",ylim=c(-1,1), col="black", type = "h") 
points(y=lag[2:N],x=1:(N-1), xlab="lag", ylim=c(-1,1), pch=16,col="red", type = "p")

如果使用 ggplot,应该这样做:

plot_df = data.frame(x = 1:20, y = rnorm(20))

ggplot(plot_df, aes(x, y, ymax = y, ymin = 0)) +
    geom_pointrange(color = "red") +
    geom_hline(yintercept = min(plot_df$y), color = "blue") +
    geom_hline(yintercept = max(plot_df$y), color = "blue")