如何将多条ROC曲线绘制在一张图中
01
问题来源
近日,小编遇到盟友咨询了作图的问题,杂志社让她将单个指标的ROC曲线和综合指标的ROC曲线放在一张图中,以方便比较,具体样式如下:
图1 样式参照图
02
实例演示:(本例来源于丁香园zcvb6网友的分享)
数据库来源于R自带的aSAH数据库,想比较s100指标与ndka指标的曲线下面积并绘制在一张图中,R代码如下:
install.packages("pROC")
library("pROC")
data(aSAH)
roc1
roc2
testobj
text(50, 50, labels=paste("p-value =", format.pval(testobj$p.value)), adj=c(0, .5))
legend("bottomright", legend=c("S100B", "NDKA"), col=c("1", "2"), lwd=2)
输出图形如下:
图2 两指标AUC比较图
3
拓展延伸
当然上图只是一个雏形图,还不够美观,大家可利用包中的函数进行美化,让曲线更加光滑,横纵坐标更好合理,去掉边框等诸多操作,本例关键是让大家找到合适的函数将多条ROC曲线绘制在一张图中,其关键函数就是lines函数。
大家可通过下面的简单例子来验证,任意假设三条曲线,通过lines函数将其绘制在一张图中,R代码如下:
x
y1
y2
y3
plot(y1 ~ x, type = "l")
lines(y2 ~ x, col = "red")
lines(y3 ~ x, col = "blue")
结果输出如下:
图3 实例展示图
为方便联盟内部成员交流,特建立微信交流群,由高校、科研院所、临床医生构成,由于群人数超过100,需要由工作人员拉你才能入群,工作人员二维码如下,添加时请备注“申请入群”:
科研统计交流群工作人员二维码
▼
领取专属 10元无门槛券
私享最新 技术干货