我必须使用annotate()来注释Bland-Altman图。由于不同的地块具有不同的地块大小,这给我带来了一个问题。更具体地说,我想在下面的图表中注释均值和+/- 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]")
然后这适用于一个特定的图,但是很明显,不适用于其他图像,如您从下图可以看出的:
我的目标是将所有注释与相应的行对齐相同的距离。我感谢任何想法。