2016-06-24 76 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) 

改用ggplot,我可以創造從輸出數據幀,然後使用ggplot(這不是我的問題)。我想知道的是,如果我能以某種方式自動將上面代碼中的圖轉換成ggplot,以便我可以在ggplot中執行我想要的操作?我搜遍了所有,我似乎無法找到這個'基本'問題的答案。謝謝!!

+0

在'methods',沒有'ggplot' – akrun

+0

更多或更少答案是不。 'ggplot2'建立在'grid'圖形系統上,它不同於ggplot2。現在可以使用'gridGraphics'軟件包將'grid'圖形與基本圖形的「矩陣」結合起來。 – lmo

+1

Paul murrel做了一些工作,將基礎轉換爲網格...接近你想要的東西https://github.com/pmur002/gridgraphics –

回答

1

不,我覺得不幸這是不可能的。

儘管這不能回答你真正的問題,但用ggplot構建它其實並不困難。

您的原創情節:

plot(rocobject) 

enter image description here

在ggplot:

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

相關問題