使用 plotROC 绘制多条 roc 曲线(相同颜色)时设置线 alpha

Set line alpha when plotting multiple roc curves (in same color) with plotROC

我正在使用 plotROC 绘制我的 ROC 曲线。下面是示例代码。我需要用相同的颜色绘制多条 roc 曲线。我发现我需要在 aes 中使用 alpha。现在我需要控制曲线的透明度。在 geom_roc 中使用 alpha 无效。有谁知道我能做什么?非常感谢。

D.ex <- rbinom(50, 1, .5)
rocdata <- data.frame(D = c(D.ex, D.ex), 
                   M = c(rnorm(50, mean = D.ex, sd = .4), 
                         rnorm(50, mean = D.ex, sd = 1)), 
                   Z = rep(c('A', 'B', 'C', 'D', 'E'), each=20) )
library(plotROC)
ggplot(rocdata, aes(m=M, d=D, alpha=Z)) + 
            geom_roc(cutoffs.at = NULL, n.cuts=0, color='blue')+
            theme(legend.position="none")

对于 plotROC::geom_rec,您必须使用 linealpha 参数设置 alpha(不在 aes 内)。但为此,您还需要指定线路组。通常在 ggplot2 中用 group = Z 完成,但在 geom_rec 中它不起作用。快速解决方案是通过 Z (color = Z) 设置颜色并使用 scale_color_manual 设置相同的颜色。

library(plotROC)
ggplot(rocdata, aes(m = M, d = D, color = Z)) + 
    geom_roc(cutoffs.at = NULL, n.cuts = 0, linealpha = 0.5) +
    scale_color_manual(values = rep("black", length(unique(rocdata$Z)))) +
    theme(legend.position = "none")