Одинаковая относительная аннотация на участках разных размеров - PullRequest
0 голосов
/ 26 июня 2019

Мне нужно использовать 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]")

Это тогда работает для одного конкретного сюжета, однако столь же очевидно, но не для других, как вы можете видеть из изображения ниже: enter image description here

Моей целью было бы выровнять все аннотации на одинаковом расстоянии от соответствующих линий. Я благодарен за любые идеи.

...