2016-06-24 80 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

相关问题