geom_line
,geom_point
,geom_segment
和geom_label
:library(tidyverse)
# create sample data
d <- data.frame(x = rep(1:5, 2),
y = c(1:5, 5:9),
category = rep(c("a", "b"), each = 5),
stringsAsFactors = FALSE)
# filter on a specific x value, and reshape the data to be "wide"
d_wide <- d %>%
filter(x == 5) %>%
spread(category, y)
ggplot(d, aes(x, y))+
geom_line(aes(colour = category))+
geom_point(aes(colour = category))+
geom_segment(data = d_wide,
aes(xend = x, y = a, yend = b))+
geom_label(data = d_wide,
aes(label = b - a, y = (b+a) / 2))