2015-11-20 18 views
9
b <- ggplot(cars,aes(x=speed,y=dist))+geom_line() 
grid.arrange(
    b, 
    plot(cars), 
    ncol=1 
) 

mi dà il seguente erroreforzare un oggetto trama regolare in un Grob per l'uso in grid.arrange

Errore nella GList (lista (grobs = lista (lista (x = 0,5, y = 0,5 , width = 1, height = 1,:. solo 'grobs' consentito in "GList"

Supponiamo mio secondo grafico deve uscire della funzione plot come si potrebbe convertire tale output in un grob -come oggetto in modo che giochi bene con grid.arrange?

+0

Non hai già fatto questa domanda prima? –

+0

Sì, ma senza codice riproducibile e non ben definito. Ho cancellato quello vecchio. – Chapo

risposta

10

si può provare con gridGraphics

library(gridGraphics) 

grab_grob <- function(){ 
    grid.echo() 
    grid.grab() 
} 

plot(cars) 
g <- grab_grob() 
b <- ggplot(cars,aes(x=speed,y=dist))+geom_line() 
grid.arrange(
    b,g, 
    ncol=1 
) 

o, in alternativa, utilizzare gridBase.

+0

Grazie per la risposta. Ho finito con il rifare il metodo plot con 'ggplot2' perché usando il tuo metodo avevo problemi di dimensionamento. Valuterò comunque ciò che è necessario. – Chapo