R 绘图中的颜色规范
我在玩Epi包中的ROC函数,它的文档指定可以将图形参数传递给plot函数。默认情况下,ROC生成灰度图。我试着只把ROC曲线本身(锯齿线)涂成红色 以下是我尝试过的:R 绘图中的颜色规范,r,R,我在玩Epi包中的ROC函数,它的文档指定可以将图形参数传递给plot函数。默认情况下,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文档确实描述了一些特定的方法,如Cel.Labor和
x = rnorm(100)
y = c(rep(0,50), rep(1,50))
library(Epi)
par(col="red"); ROC(form = y~x, plot="ROC")
这将创建一个颜色不一致的奇怪图形。PAR文档确实描述了一些特定的方法,如Cel.Labor和Cel.Axor,用于颜色特定的图形元素,但不包括主线颜色的参数。p>
我不得不认为这个基本问题一定在其他地方得到了解决,但到目前为止还没有在R文档和Google上找到答案。对于您的具体情况,如果您想修改函数
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”
或类似的消息。例如,您可以将mycl
参数添加到函数本身,然后将该行更改为:
lines(1 - res[, 2], res[, 1], lwd = lwd, col = mycol)
另外,正如我在下面提到的,您还必须将
ROC.tic
的所有实例更改为Epi:::ROC.tic
对于您的特定情况,如果您想要修改函数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”
或类似的消息。例如,您可以将mycl
参数添加到函数本身,然后将该行更改为:
lines(1 - res[, 2], res[, 1], lwd = lwd, col = mycol)
另外,正如我在下面提到的,您还必须将
ROC.tic
的所有实例从查看ROC
中的代码更改为Epi:::ROC.tic,看起来您无法直接执行此操作。…
中的参数被传递到绘图(类型='n',…)
中,所有线条的绘制都是用硬编码的颜色单独完成的。谢谢。是否可以手动覆盖功能的硬编码元素?抱歉,这里的编程经验太少。从查看ROC
中的代码来看,您似乎无法直接执行此操作。…
中的参数被传递到绘图(类型='n',…)
中,所有线条的绘制都是用硬编码的颜色单独完成的。谢谢。是否可以手动覆盖功能的硬编码元素?很抱歉,这里的编程经验很少。不熟悉此函数,但您是否可以将省略号添加到lines()
调用中,以确保该方法中包含任何图形参数?@JeffAllen可能,我只是认为这样更容易理解。但是现在我尝试这一点毫无意义,似乎ROC
正在调用Epi中的未导出函数,因此需要进行更多修改。谢谢joran!!非常好用。不熟悉这个函数,但是你能不能在lines()
调用中添加省略号,以确保该方法中包含任何图形参数?@JeffAllen可能吧,我只是觉得这样更容易理解。但是现在我尝试这一点毫无意义,似乎ROC
正在调用Epi中的未导出函数,因此需要进行更多修改。谢谢joran!!工作完美。