Как редактировать легенду о калибровочном графике? - PullRequest
2 голосов
/ 13 января 2020

Я рисую калибровочный график с кодом R из: http://rpubs.com/IL2/519772

require(rms)
library(Hmisc)
library(grid)
library(lattice)
library(Formula) 
library(ggplot2) 
library(survival)
library(survival)
data(lung)

lung$sex <- factor(lung$sex,levels = c(1,2),labels = c("male", "female"))
dd=datadist(lung)
options(datadist="dd") 
fit1<- lrm(status~ age + sex+ ph.karno,x=T,y=T, data = lung) 
cal1 <- calibrate(fit1,X=T,Y=T, method='boot',m=76,B=228)

plot(cal1,lwd=2,lty=1,
 cex.lab=1.2, cex.axis=1, cex.main=1.2, cex.sub=0.6,
 xlim = c(0,1),ylim= c(0,1),
 xlab="Nomogram-Predicted Probability of death risk",
 ylab="Actual death (proportion)",
 col=c("#00468BFF","#ED0000FF","#42B540FF")
 )

 lines(cal1[,c(1:3)], 
  type ="o", 
  lwd = 1, 
  pch = 16, 
  col=c("#00468BFF"))

abline(0,1,lty = 3, 
   lwd = 2, 
   col = c("#224444")
   ) 

Однако мой график не может показать всю легенду о «очевидном, исправленном смещением, идеальном» ".

enter image description here Как редактировать сюжет, как показано ниже? enter image description here

1 Ответ

4 голосов
/ 13 января 2020

Вы можете использовать опцию legend=FALSE и создать пользовательский legend и определить точные позиции.

plot(cal1, lwd=2, lty=1, 
     cex.lab=1.2, cex.axis=1, cex.main=1.2, cex.sub=0.6, 
     xlim=c(0, 1), ylim= c(0, 1), 
     xlab="Nomogram-Predicted Probability of death risk", 
     ylab="Actual death (proportion)", 
     col=c("#00468BFF", "#ED0000FF", "#42B540FF"),
     legend=FALSE)

lines(cal1[, c(1:3)], type ="o", lwd=1, pch=16, col=c("#00468BFF"))

abline(0, 1, lty=3, lwd=2,  col=c("#224444")) 

legend(x=.6, y=.4, legend=c("Apparent", "Bias-corrected", "Ideal"), 
       lty=c(3, 1, 2), bty="n")

enter image description here

Как вы только что нашли чтобы сделать легенду еще более узкой, мы можем использовать опцию y.intersp внутри legend, например legend(... y.intersp=.8).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...