I have a horizontal line in a ggplot and I would like to label it's value (7.1) on the y axis.
library(ggplot2) df <- data.frame(y=c(1:10),x=c(1:10)) h <- 7.1 plot1 <- ggplot(df, aes(x=x,y=y)) + geom_point() plot2 <- plot1+ geom_hline(aes(yintercept=h))
Thank you for your help.
Example: To add the horizontal line on the plot, we simply add geom_hline() function to ggplot2() function and pass the yintercept, which basically has a location on the Y axis, where we actually want to create a vertical line.
To create a vertical line using ggplot2, we can use geom_vline function of ggplot2 package and if we want to have a wide vertical line with different color then lwd and colour argument will be used. The lwd argument will increase the width of the line and obviously colour argument will change the color.
It's not clear if you want 7.1 to be part of the y-axis, or if you just want a way to label the line. Assuming the former, you can use scale_y_continuous()
to define your own breaks. Something like this may do what you want (will need some fiddling most likely):
plot1+ geom_hline(aes(yintercept=h)) + scale_y_continuous(breaks = sort(c(seq(min(df$y), max(df$y), length.out=5), h)))
Assuming the latter, this is probably more what you want:
plot1 + geom_hline(aes(yintercept=h)) + geom_text(aes(0,h,label = h, vjust = -1))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With