繁体   English   中英

ggplot2点之间的垂直线

[英]Vertical lines between points with ggplot2

我是ggplot2 ,无法弄清楚如何绘制之间的垂直虚线灰线

沿x轴的点/点。 这是我的示例代码:

d1 <- runif(10,10,15)

d2 <- runif(10,25,30)

d3 <- rep(1:10,2)

df <- data.frame(x = d3, y = c(d1,d2))

ggplot(df, aes(x=x, y=y)) +

geom_point()

如果您的实际数据的结构类似于您的示例所使用的数据,则只需将geom_line(aes(group = d3))到绘图中。

ggplot(df, aes(x=x, y=y)) +  
 geom_point() + geom_line(aes(group = d3))

在此输入图像描述

肯定有比这更好的方法但是:

d1 <- runif(10,10,15)
d2 <- runif(10,25,30)
d3 <- rep(1:10,2)
df <- data.frame(x = d3, y = c(d1,d2))
df$place <- rep(c("min", "max") , each=10)

df_wide <- reshape(df, direction = "wide", v.names="y", timevar="place", idvar="x") 

ggplot(df, aes(x=x, y=y)) +
    geom_segment(aes(x=x, xend=x, y=y.min, yend=y.max), 
        size=1, data=df_wide, colour="grey70", linetype="dotted") +
    geom_point() 

虽然我不确定你的意思是“沿x轴”,但也许你希望它从上到下延伸,而不仅仅是在点之间。

您应该使用geom_vline()来执行此操作。

        d1 <- runif(10,10,15)
        d2 <- runif(10,25,30)
        d3 <- rep(1:10,2)
        df <- data.frame(x = d3, y = c(d1,d2))
       ggplot(df, aes(x=x, y=y)) + geom_point() + 
geom_vline(xintercept = df$x, linetype= 3, colour = "#919191")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM