Ваше замечание о том, что «не выбрано» / «выбрано» добавлено выше, является правильным - значения y являются цифрами c (в непрерывном масштабе) и <1 - ggplot, кажется, «считывает» значения дискретного масштаба как 1 , 2, ..., поэтому они появляются над вашими диаграммами. Либо вам нужно преобразовать значения y в дискретные значения, либо, что я бы посоветовал вам использовать аннотации, чтобы показать «выбрано» против «не выбрано» - вот простой пример: </p>
library(tidyverse)
df <- tibble(Posture = rep(c("Closed", "Open"), 2),
Sex = c("female", "male", "male", "female"),
z = c(0.23, 0.3, 0.1, 0.4))
ggplot(df) + aes(x = Posture, color = Sex, group = Sex, y = z) +
stat_summary(fun.y = mean, geom = "point") +
stat_summary(fun.y = mean, geom = "line") +
geom_hline(yintercept = 0.2) +
annotate("text", x = 0.5, y = 0.21, label = "Chosen", hjust = 0) +
annotate("text", x = 0.5, y = 0.19, label = "Not Chosen", hjust = 0) +
scale_color_discrete(name = "Sex of physician",
labels = c("female physician", "male physician"))
Это пример быстрый и грязный - особенно x = 0.5, y = 0.21
в аннотациях не будет вести себя хорошо, когда ваши весы меняются.