Никогда не отправляйте строку, когда достаточно точки:
library(ggplot2)
df <- data.frame(tt = rep(c("a","b","c"),40),
val = round(rnorm(120, m = rep(c(4, 5, 7), each = 40))))
hline <- data.frame(tt=c("a", "b", "c"), v=c(3, 2.5, 6))
ggplot(df, aes(tt, val))+
geom_point(data=hline, aes(tt, v), shape=95, size=20) +
geom_jitter(aes(tt, val), data = df, colour = I("red"),
position = position_jitter(width = 0.05))
![введите здесь описание изображения](https://i.stack.imgur.com/7qytz.png)
Есть и другие способы, если это неприемлемо, например:
hline <- data.frame(tt=c(1, 2, 3), v=c(3, 2.5, 6))
ggplot(df, aes(tt, val))+
geom_jitter(aes(tt, val), data = df, colour = I("red"),
position = position_jitter(width = 0.05)) +
geom_segment(data=hline, aes(x=tt-0.25, xend=tt+0.25, y=v, yend=v))
![введите здесь описание изображения](https://i.stack.imgur.com/GP60F.png)
Недостатком точки является вопиющая толщина и отсутствие контроля над шириной.
Недостатком сегмента является необходимость использования числовых значений для положения дискретной оси по сравнению с коэффициентами.
Я также должен был установить случайное начальное число, чтобы обеспечить воспроизводимость.
person
hrbrmstr
schedule
20.09.2016
geom_segment(aes(x=0.75,xend=1.25,y=3,yend=3))
- person Martin Schmelzer   schedule 20.09.2016