Мне нужно использовать annotate (), чтобы комментировать графики Бланд-Альтмана. Поскольку разные сюжеты идут с разными размерами, это создает для меня проблему. Более конкретно, я хотел бы аннотировать среднее значение и +/- 1,96 SD на графиках ниже.
Я точно знаю, где нарисованы линии.
То, что я пробовал до сих пор:
bland_plot2<-blandr.draw(statistics.results$method1, statistics.results$method2, method1name = "Method 1",
method2name = "Method 2",
plotTitle = paste("Bland-Altman plot for comparison of ",xlab," and ", ylab,sep=""),
sig.level = 0.95, LoA.mode = 1, annotate = TRUE, ciDisplay = TRUE,
ciShading = FALSE, normalLow = FALSE, normalHigh = FALSE,
lowest_y_axis = FALSE, highest_y_axis = FALSE, point_size = 0.8,
overlapping = FALSE, plotter = "ggplot", x.plot.mode = "means",
y.plot.mode = "differences", plotProportionalBias = FALSE,
plotProportionalBias.se = TRUE, assume.differences.are.normal = TRUE)
bland_plot2<-bland_plot2+ ggplot2::coord_cartesian( xlim=c( bland_limits$x_lower , bland_limits$x_upper ))+
annotate(geom="text", x=Inf,y=(0.03*bland_limits$y_upper) , label= "Mean", hjust=1, size=5)+
annotate(geom="text", x=Inf,y=(0.03*bland_limits$y_lower) , label= round(statistics.results$bias,1), hjust=1, size=5)+
annotate(geom="text", x=Inf,y=(1.2*statistics.results$upperLOA) , label= "+1.96 SD", hjust=1, size=5)+
annotate(geom="text", x=Inf,y=(0.8*statistics.results$upperLOA) , label= round(statistics.results$upperLOA,1), hjust=1, size=5)+
annotate(geom="text", x=Inf,y=(0.8*statistics.results$lowerLOA) , label= "-1.96 SD", hjust=1, size=5)+
annotate(geom="text", x=Inf,y=(1.2*statistics.results$lowerLOA) , label= round(statistics.results$lowerLOA,1), hjust=1, size=5)+
labs(x = "Mean [ms]")+labs(y="Differences [ms]")
Это тогда работает для одного конкретного сюжета, однако столь же очевидно, но не для других, как вы можете видеть из изображения ниже:
Моей целью было бы выровнять все аннотации на одинаковом расстоянии от соответствующих линий. Я благодарен за любые идеи.