2012-08-23 4 views
1

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 문서와 Google을 검색하지 못했습니다.

+0

'ROC'의 코드를 보면서 직접 할 수없는 것처럼 보입니다. '...'의 인자는'plot (type = 'n', ...)'에 전달되며 모든 선 그리기는 하드 코딩 된 색상과 별도로 수행됩니다. – joran

+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) 

당신은 lines 호출, col = "red" 또는 일부 등을 통과 할 수 있습니다. 예를 들어 당신은 함수 자체에 mycol 인수를 추가 한 다음 한 줄에 있음을 변경할 수 있습니다 : 또한

lines(1 - res[, 2], res[, 1], lwd = lwd, col = mycol) 

내가 아래에 언급 한 바와 같이, 당신은 또한 Epi:::ROC.ticROC.tic의 모든 인스턴스를 변경해야합니다.

+0

이 함수에 익숙하지 않지만'lines()'호출에 줄임표를 추가하여 그래픽 매개 변수가 해당 메서드에 포함되도록 할 수 있습니까? –

+0

@JeffAllen 아마, 나는 이것을 이해하는 것이 더 간단 할 것이라고 생각했습니다. 하지만 이제는 이걸 시도하는 것이 의의가 있습니다. ** ROC는 ** Epi **에서 수출되지 않은 기능을 호출하고있는 것으로 보입니다. 따라서 더 많은 수정이 필요할 것입니다. – joran

+0

조란 감사합니다 !! 완벽하게 작동합니다. –