Add a vertical line with ggplot when x-axis is a factor

后端 未结 2 1929
無奈伤痛
無奈伤痛 2021-02-20 17:13

The following code use to work pre-version .9 of ggplot2. Is this not possible anymore?

df = data.frame(x = letters[1:26], y=abs(rnorm(26)))
ggplot(df, aes(x=x,          


        
相关标签:
2条回答
  • 2021-02-20 18:01

    This answer is kind of a more broader discussion for people who wants to add vertical line in customized position in categorized x-axis.

    I have five groups and five factors in each group. I want to add 4 vertical lines behind the last factor in each group to separate the five groups (at the 'E' position in this case). The method from @dickoa is not working for my case. when I use :

    geom_vline(xintercept=which(df$x == 'm'))
    

    It only adds vertical line at 'm' of the 3rd group. I just find that I can try sth like this:

    geom_vline(xintercept = c(1.5,2.5,3.5,4.5))
    

    At least this works perfect for my case. You may need to try several times to find the pattern fitting your case.

    I always want to know how to add vertical/ horizontal line based on the proportion of x/y axis. e.g., xintercept = 0.5 means add vertical line in the middle of x-axis, and xintercept = 0.25 means first quarter. However I can't find any knowledge about this topic.

    0 讨论(0)
  • 2021-02-20 18:07

    I don't know (don't remember) if your original used to work with old version of ggplot but you can use an another approach like this one :

    ggplot(df, aes(x=x, y=y)) + geom_bar() + geom_vline(xintercept=which(df$x == 'm'))
    

    Hope this help !!!

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