Vertical lines between points with ggplot2

后端 未结 3 994
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-01-06 02:45

I am new to ggplot2 and cannot figure out how to draw vertical dotted grey lines between

the points/dots along the x-axis. Here\'s my example code:

相关标签:
3条回答
  • 2021-01-06 03:12

    You should be using geom_vline() to do this.

            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")
    
    0 讨论(0)
  • 2021-01-06 03:29

    If your actual data is structured like the one used for your example, just add geom_line(aes(group = d3)) to the plot.

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

    enter image description here

    0 讨论(0)
  • 2021-01-06 03:33

    There's definitely better ways than this but:

    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() 
    

    Though I'm not sure what you mean by "along the x axis", maybe you want it to extend top to bottom not just between the points.

    0 讨论(0)
提交回复
热议问题