R Ggplot2: Проведите линии между несвязанными точками

#r #ggplot2 #line #geom

Вопрос:

Я хочу провести черту между некоторыми несвязанными точками.

Теперь это мой код:

 probpostest %gt;%  filter(prev==15) %gt;%   mutate(  stat=replace(stat,stat=="prevalencia","Prevalencia"),  stat=replace(stat,stat=="probpostestpositivo","ProbabilidadnPostestnPositivo"),  stat=replace(stat,stat=="probpostestnegativo","ProbabilidadnPostestnNegativo"),  group=replace(group,group=="proven","Confirmada"),  group=replace(group,group=="proven_likely","Confirmada onprobable"),  group=replace(group,group=="proven_likely_possible","Confirmada,nprobable onposible")) %gt;%   mutate(across(stat, factor, levels=c("Prevalencia","ProbabilidadnPostestnPositivo","ProbabilidadnPostestnNegativo")),  across(c(lower,upper), as.numeric),  lower=lower/100,  upper=upper/100) %gt;%   ggplot(aes(x=stat,  y=if_else(is.na(estimator*100),  100,  estimator*100),  ymin=lower,ymax=upper,color=stat))    geom_point()     geom_text(aes(label=if_else(is.na(estimator),  "NC",  paste0(sprintf("%2.2f",estimator*100),"%")),  vjust=if_else(is.infinite(estimator),  1,  0.5),  hjust=-0.25),  show.legend = FALSE,  size=4)   # Esta línea quita la "a" de las leyendas  labs(x=NULL,y=NULL,title = "Figura 5. Probabilidades pre-test y post-test.",  caption="Prevalencia: probabilidad pre-test.nnProbabilidad pos-test positivo y negativo: probabilidad de tener candidiasis invasiva después de obtener un resultado positivo o negativo, respectivamente.nnNC: no calculable.")   facet_grid(group ~ test,  scales = "free_y",  switch = "y"  )    theme_minimal()   theme(plot.title = element_text(hjust = 0.5),  plot.caption = element_text(hjust = 0),  legend.position = "none",  strip.text = element_text(face="bold"))    scale_y_continuous(position = "right")    scale_color_brewer(palette = "Set1")  

Я понимаю это: Рис. 1

и я бы хотел что-то подобное (сделать краской): введите описание изображения здесь

Я попробовал добавить geom_line(aes(x = stat, group=group)) и смог получить это, а это не то, что мне нужно.

введите описание изображения здесь

Интересно, как я мог бы связать точки моего интереса, а затем провести линию между ними. Спасибо вам за вашу помощь!

Репрекс:

 structure(list(prev = c(15, 15, 15, 15, 15, 15, 15, 15, 15, 15,  15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,  15, 10, 10, 10, 10, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5,  5, 5), group = c("proven", "proven", "proven", "proven_likely",  "proven_likely", "proven_likely", "proven_likely_possible", "proven_likely_possible",  "proven_likely_possible", "proven", "proven", "proven", "proven_likely",  "proven_likely", "proven_likely", "proven_likely_possible", "proven_likely_possible",  "proven_likely_possible", "proven", "proven", "proven", "proven_likely",  "proven_likely", "proven_likely", "proven_likely_possible", "proven_likely_possible",  "proven_likely_possible", "proven", "proven", "proven", "proven",  "proven", "proven", "proven", "proven", "proven", "proven", "proven",  "proven", "proven", "proven", "proven", "proven", "proven", "proven" ), test = c("T2Candida", "T2Candida", "T2Candida", "T2Candida",  "T2Candida", "T2Candida", "T2Candida", "T2Candida", "T2Candida",  "Hemocultivo", "Hemocultivo", "Hemocultivo", "Hemocultivo", "Hemocultivo",  "Hemocultivo", "Hemocultivo", "Hemocultivo", "Hemocultivo", "T2Candida   Hemocultivo",  "T2Candida   Hemocultivo", "T2Candida   Hemocultivo", "T2Candida   Hemocultivo",  "T2Candida   Hemocultivo", "T2Candida   Hemocultivo", "T2Candida   Hemocultivo",  "T2Candida   Hemocultivo", "T2Candida   Hemocultivo", "T2Candida",  "T2Candida", "T2Candida", "Hemocultivo", "Hemocultivo", "Hemocultivo",  "T2Candida   Hemocultivo", "T2Candida   Hemocultivo", "T2Candida   Hemocultivo",  "T2Candida", "T2Candida", "T2Candida", "Hemocultivo", "Hemocultivo",  "Hemocultivo", "T2Candida   Hemocultivo", "T2Candida   Hemocultivo",  "T2Candida   Hemocultivo"), stat = c("prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo", "prevalencia", "probpostestpositivo",  "probpostestnegativo"), estimator = c(0.158, 0.635718612096565,  0.0361721611721612, 0.404, 0.637998056365403, 0.351610095735422,  0.561, 0.908822796377835, 0.472165444270771, 0.158, 1, 0.101195559350982,  0.404, 1, 0.351610095735422, 0.561, 1, 0.534908358936328, 0.158,  NA, 0.0184192119375146, 0.404, NA, 0.321802457897132, 0.561,  NA, 0.472165444270771, 0.1, 0.508196721311476, 0.0217391304347826,  0.1, 1, 0.0625, 0.1, NA, 0.010989010989011, 0.05, 0.328621908127209,  0.0104166666666667, 0.05, 1, 0.0306122448979592, 0.05, NA, 0.00523560209424084 ), lower = c("7.5", NA, NA, "27.6", NA, NA, "42.4", NA, NA, "7.5",  NA, NA, "27.6", NA, NA, "42.4", NA, NA, "7.5", NA, NA, "27.6",  NA, NA, "42.4", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,  NA, NA, NA, NA, NA, NA, NA, NA), upper = c("27.9", NA, NA, "54.2",  NA, NA, "69.3", NA, NA, "27.9", NA, NA, "54.2", NA, NA, "69.3",  NA, NA, "27.9", NA, NA, "54.2", NA, NA, "69.3", NA, NA, NA, NA,  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA )), row.names = c(NA, -45L), class = c("tbl_df", "tbl", "data.frame" ))  

Комментарии:

1. Скорее всего, вы захотите geom_segment вместо geom_line отдельных сегментов линии.

2. Я попробовал geom_segment, но не могу заставить его работать с facet_grid