视频地址戳这个
首先按照惯例给大家看一下我们的原始数据长什么样子:
然后就可以加载包导入数据了
rm(list=ls())
library(openxlsx)
library(pROC)
library(ggplot2)
lxrdata<-read.xlsx("ROC.xlsx", sheet =1)
然后就可以读取数据并绘制了
lxrroc1 <- plot.roc(lxrdata$gold_standard, lxrdata$Atest)
best<-coords(lxrroc1, "best", ret ="all", transpose =F)
plot.roc(lxrroc1,col="#FF6665", identity.col ="grey", legacy.axes=T)
legend("bottomright",
c(paste('AUC=',round(lxrroc1$auc,3),sep = ""),
paste("cutoff value=",round(best$threshold, 3),sep = ""),
paste('Spensitivity=',round(best$sensitivity,3),sep = ""),
paste('Specificity=',round(best$specificity,3),sep = "")),
)
col后面是曲线的颜色
identity.col可以修改参考线的颜色
round用于取整,如果不想要可以不用
最终结果如下图
如果需要将2种及以上ROC曲线集成到一张图里面,可以这么操作
首先分别计算每一条ROC曲线的相关数据:
rm(list=ls())
library(openxlsx)
library(pROC)
library(ggplot2)
lxrdata<-read.xlsx("ROC.xlsx", sheet =1)
lxrroc1 <- plot.roc(lxrdata$gold_standard, lxrdata$Atest)
lxrroc2 <- plot.roc(lxrdata$gold_standard, lxrdata$Btest)
lxrroc3 <- plot.roc(lxrdata$gold_standard, lxrdata$ABtest)
然后先绘制第一条,再把每一条曲线添加上去
plot.roc(lxrroc1,col="#FF6665", identity.col ="grey", legacy.axes=T)
plot.roc(lxrroc2,col="#356567", legacy.axes=T,add = T)
plot.roc(lxrroc3,col="#659BCD", legacy.axes=T,add = T)
legend("bottomright",
c("Atest","Btest","ABtest"),
col = c("#FF6665","#356567","#659BCD"),
lwd = 2)
其中add 表示添加的曲线,
注意图例里面三种颜色是和绘图的三种颜色一一对应的
最终结果如下图