在 ROC 曲线后面绘制线条

问题描述 投票:0回答:1

我正在尝试使用 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 解决方案。

r ggplot2 roc
1个回答
0
投票
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)
© www.soinside.com 2019 - 2024. All rights reserved.