2016-06-24 1 views
2

저는 R에 다소 익숙합니다. ggplot을 좋아합니다. 그게 내가 플로팅에 사용하는 모든 것입니다. 그래서 R의 기본 플롯에 필요한 모든 고대 구문을 알지 못합니다. 그리고 나는 그것을 배우지 않을 것입니다. 나는 pROC :: roc을 돌리고있어 ggplot에서 출력을 플로팅하고 싶다. (그래서 나는 그것이 어떻게 보이는지 조정할 수있다.)r의 기본 플롯을 ggplot 객체로 변환 할 수 있습니까?

size <- 100 
response <- sample(c(0,1), replace=TRUE, size=size) 
predictor <- rnorm(100) 
rocobject <- pROC::roc(response, predictor,smooth=T) 
plot(rocobject) 

(이 내 질문 아닙니다) I 출력에서 ​​데이터 프레임을 만든 다음 ggplot을 사용할 수 있습니다, 대신 ggplot 사용하려면 다음과 같이 나는 즉시 음모를 얻을 수 있습니다. 내가 알고 싶은 것은 만약 내가 어떻게 든 위의 코드에서 만들어진 플롯을 자동으로 ggplot으로 '변환'하여 ggplot에서 원하는 것을 할 수 있다면? 나는 모든 것을 조사했고 나는이 '기본적인'질문에 대한 답을 찾을 수없는 것 같다. 감사!!

+0

, 아니는' – akrun

+0

이 더 많거나 적은 ggplot' 없다 내 대답은 아니오 야. 'ggplot2'는 ggplot2와는 다른'grid' 그래픽 시스템을 기반으로합니다. 이제'gridGraphics' 패키지를 사용하여 그래프의 "매트릭스"에서 기본 그래프와'grid' 그래프를 결합하는 것이 가능합니다. – lmo

+1

Paul murrel이 기지를 그리드로 전환하는 작업을 수행했습니다 ... 원하는 작업에 가깝습니다. https://github.com/pmur002/gridgraphics –

답변

1

아니요, 불행히도 이것은 불가능합니다.

실제 질문에 답변하지는 않지만 실제로 ggplot을 사용하여 구축하는 것은 어렵지 않습니다.

원래 줄거리 : ggplot에서

plot(rocobject) 

enter image description here

다음`methods`에서

library(ggplot2) 
df<-data.frame(y=unlist(rocobject[1]), x=unlist(rocobject[2])) 
ggplot(df, aes(x, y)) + geom_line() + scale_x_reverse() + geom_abline(intercept=1, slope=1, linetype="dashed") + xlab("Specificity") + ylab("sensitivity") 

enter image description here

관련 문제