2016-01-17 10 views
24

Ho appena aggiornato R, R Studio e un mucchio di pacchetti inclusi ggplot2 e gridExtras sul mio Mac. Ora gridExtras sta fallendo nel tracciato di base con l'errore:grid.arrange da gridExtras in uscita con "solo 'grobs' consentito in 'gList'" dopo l'aggiornamento

"solo 'grobs' consentito in 'GList'"

Ecco un po 'di codice che dovrebbe funzionare, ma non lo fa:

library(ggplot2) 
p1 = qplot(1:10,rnorm(10)) 
p2 = qplot(1:10,rnorm(10)) 
library(gridExtra) 
grid.arrange(p1, p2, ncol=2, main = "Main title") 

Questo discariche fuori il seguente errore:

Error in gList(list(grobs = list(list(x = 0.5, y = 0.5, width = 1, height = 1, : 
    only 'grobs' allowed in "gList" 
In addition: Warning message: 
In grob$wrapvp <- vp : Coercing LHS to a list 

Qualsiasi aiuto è apprezzato!

+2

'grid.arrange' non hai parametro' main' (secondo il mio aiuto, almeno). Il tuo codice funziona bene senza quello. –

+1

Si spera che anche tu abbia esaminato le modifiche a ggplot2 2.0. Questo ha due cambiamenti che potrebbero interrompere la funzionalità esistente in qualche codice vis. – hrbrmstr

+0

Sì, stavo girando in github in cerca di note di rilascio, non ho trovato questo accennato, ma è piuttosto chiaro cosa è successo. –

risposta

27

È perché grid.arrange non ha più un parametro main (sembra essere stato eliminato in giro Estate 2015 con il rilascio 2.0.0) e pensa quindi che il parametro main= deve essere un Grob. Per sostituire main, è possibile utilizzare il parametro ora (nonché un bottom, left e right).

Quindi questo funziona, per esempio:

library(ggplot2) 
p1 = qplot(1:10,rnorm(10)) 
p2 = qplot(1:10,rnorm(10)) 

library(gridExtra) 
grid.arrange(p1, p2, ncol=2,top="Main Title") 

Il messaggio è un po 'di confusione, che è perché esamina tutti i parametri che non conosce e non si assume potrebbero essere grobs (oggetti grafici) che possa tracciare. Un messaggio di errore confuso come questo è il prezzo che si paga per quella flessibilità.

Nota: se si dispone di molto grobs, è consigliabile prendere in considerazione la possibilità di includerli tutti in un elenco e utilizzare la tecnica grobs = list(p1,p2,...).

enter image description here

+0

Era così. Grazie! –

+0

Prego. Rompere i cambiamenti può essere un dolore. –

+1

Sono abbastanza sicuro che vince il premio per il messaggio di errore Most Unrelated Ever. Questo problema risolveva il mio problema con questo codice: 'grid.arrange (arrangeGrob (, main =" Big Title ", ncol = 1))' – TheProletariat

Problemi correlati