r - 如何编辑校准图的图例?

标签 r

我使用 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

最佳答案

您可以使用legend=FALSE选项并创建自定义图例并定义确切位置。

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

正如您自己发现的那样,为了使图例更窄,我们可以在 legend 中使用选项 y.intersp,例如图例(... y.intersp=.8).

关于r - 如何编辑校准图的图例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59710848/

相关文章:

r - rgeos::gCentroid() 和 sf::st_centroid() 返回的值是否不同?

r - 在 R 中创建时间对象

r - 如何在R中绘制美国多个州的轮廓?

r - 我应该如何处理 "' someFunction' is not an export object from 'namespace:somePackage' "错误?

r - 使用ifelse在R中创建新变量,但收到错误消息意外的 '='

r - 如何创建单独的数据框?

r - 在ggplot2中创建后更改比例图例标签

r - 如果 R 中另一列中的值是连续的,则追加列的值

r - 如何创建这个特殊序列?

r - 计算多列 xts 对象的返回