2016-06-24 2 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. Теперь можно комбинировать графики «grid» с базовыми графами в «матрице» графов, используя пакет «gridGraphics». – lmo

+1

Пол 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

Смежные вопросы