我正在使用Epi包中的ROC函数,其文档指定您可以将图形参数传递给绘图函数。默认情况下,ROC生成灰度图。我试图只将ROC曲线本身(锯齿状线)染成红色。
这是我试过的:
x = rnorm(100)
y = c(rep(0,50), rep(1,50))
library(Epi)
par(col="red"); ROC(form = y~x, plot="ROC")
这会创建一个颜色不一致的奇怪图形。 par文档确实描述了一些特定的方法,如col.lab和col.axis,以对特定的图形元素进行着色,但不包括主线颜色的参数。
我必须认为这个基本问题必须在其他地方得到解决,但到目前为止还没有运气搜索R文档和谷歌。
答案 0 :(得分:1)
对于您的具体情况,如果您想修改功能ROC
以满足您的需求,您可以执行以下操作。在控制台中键入ROC
以查看ROC
的代码。将其复制并粘贴到文件中,并为其指定一个新名称,例如ROC2
。查找以下代码:
if (any(!is.na(match("ROC", toupper(plot))))) {
plot(1 - res[, 2], res[, 1], xlim = 0:1, xlab = "1-Specificity",
ylim = 0:1, ylab = "Sensitivity", type = "n", ...)
if (is.numeric(grid))
abline(h = grid/100, v = grid/100, col = gray(0.9))
abline(0, 1, col = gray(0.4))
box()
lines(1 - res[, 2], res[, 1], lwd = lwd)
您需要在col = "red"
来电中传递lines
或其他类似内容。例如,您可以向函数本身添加mycol
参数,然后将该行更改为:
lines(1 - res[, 2], res[, 1], lwd = lwd, col = mycol)
另外,正如我在下面提到的,您还必须将ROC.tic
的所有实例更改为Epi:::ROC.tic
。