我可以将r中的基本图转换为ggplot对象吗?

时间:2016-06-24 11:03:12

标签: r plot ggplot2 base

我对R有点新鲜,我喜欢ggplot - 这是我用于绘图的所有内容,所以我不知道R中基本图所需的所有古老语法(和我&# 39; d而不是学习它。我正在运行pROC :: roc,我想在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(这不是我的问题)。我想知道的是,如果我可以以某种方式转换&#39;将上面的代码中的绘图自动生成ggplot,以便我可以在ggplot中执行我想要的操作?我一直在搜索,我似乎无法找到这个基本&#39;的答案。题。谢谢!

2 个答案:

答案 0 :(得分:3)

不,我认为不幸的是,这是不可能的。

即使这不能回答你的真实问题,但使用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

答案 1 :(得分:0)

迟到总比没有好?我认为ggplotify包可能会做您想要的。您基本上可以像下面这样将绘图生成代码插入as.ggplot()函数中:

p6 <- as.ggplot(~plot(iris$Sepal.Length, iris$Sepal.Width, col=color, pch=15))

https://cran.r-project.org/web/packages/ggplotify/vignettes/ggplotify.html