Графики Bland-altman: как изменить ось y

#r #plot #reliability

#r #график #надежность

Вопрос:

Кто-нибудь знает, как изменить ylim на графиках Bland-Altman при использовании этого кода? Я хотел бы использовать приведенный ниже код для графиков bland-altman, потому что мне нравится, как они выглядят, и насколько легко добавить 95% CIS.

 library(BlandAltmanLeh)

set.seed(1)
a <- rnorm(40,30,10)
b <- 1.01*a   rnorm(40)
x <- bland.altman.plot(a,b, xlab="mean", ylab="difference")
  

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

1. невозможно, учитывая, как они написали функцию. вы можете воссоздать базовый график ba <- bland.altman.stats(a, b); plot(ba$means, ba$diffs, ylim = c(-3, 2), panel.last = abline(h = ba$lines, lty = 2)) и изменить его по своему усмотрению. просто прочитайте код BlandAltmanLeh:::bland.altman.base , чтобы увидеть, как он рисуется

2. выглядит не так красиво, хотя у меня было много добавленных вещей, например, CI. Super раздражает. Должно быть, на то есть веская причина, но когда вы хотите иметь два графика Bland-Altman рядом, для них имеет смысл иметь одну и ту же ось y.

3. просто прочитайте код BlandAltmanLeh:::bland.altman.base и используйте одни и те же вызовы, и он будет выглядеть идентично. есть три вызова abline , я показал только один

Ответ №1:

Мне удалось закодировать график bland-altman, очень похожий на тот, который был получен этим пакетом:

 library(BlandAltmanLeh)


Diff <- data.frame(Diff1 = runif(50, 250.0, 500.0), Diff2 = runif(50, 200.0, 400.0)) 

ba.stats <- bland.altman.stats(Diff$Diff2, Diff$Diff1)
summary(ba.stats$CI.lines)


ba.stats2 <- as.data.frame(cbind(ba.stats$means, ba.stats$diffs))

BA.plot <- ggExtra::ggMarginal(ggplot(ba.stats2, aes(V1,V2))   geom_point()   theme_bw()  
                       geom_hline(yintercept = ba.stats$lines, linetype="dashed", size=1) 
                       labs(x = "Means", y = "Difference (S2-S1)")   ylim(-300, 150)  
                       geom_hline(yintercept = ba.stats$CI.lines, col = "grey", linetype="dashed", size = 0.70), type = "histogram")

print(BA.plot)
  

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