我正在尝试使用 ggroc 和 45 度线以及曲线周围的框来绘制 ROC 曲线:
ggroc(list(roc1, roc2, roc3)) +
scale_color_manual(
values = c("red", "blue", "yellow"),
legacy.axes = T) +
geom_segment(
aes(x = 0, xend = 1, y = 0, yend = 1),
linetype = "dashed",
color = "grey") +
geom_rect(
aes(xmin = 0, xmax = 1, ymin = 0, ymax = 1),
color = "grey", fill = NA)
基本上我的数据显示,我绘制曲线的测试不起作用,因此 ROC 线部分穿过 45 度线,并且在开始和结束处被 geom_rect 遮挡。
我尝试了
annotate
、custom_annotation
和 after_stat = FALSE
与几何对象,但找不到任何其他有希望的解决方案。有没有办法获得保持 ggroc 的 ROC 线后面的线和框?可能可以使用 ggplot 重建绘图并更改图层的顺序,但我会更喜欢 ggroc 解决方案。
library(pROC)
library(ggplot2)
data(aSAH)
roc.list <- roc(outcome ~ s100b + ndka + wfns, data = aSAH)
p <- ggroc(roc.list, legacy.axes = T) +
geom_segment(
aes(x = 0, xend = 1, y = 0, yend = 1),
linetype = "dashed",
color = "grey") +
geom_rect(
aes(xmin = 0, xmax = 1, ymin = 0, ymax = 1),
color = "grey", fill = "dark blue")
#change order of layers
p$layers <- p$layers[c(3, 2, 1)]
print(p)