2016-01-17 25 views
24

Ich habe gerade R, R Studio und eine Reihe von Paketen einschließlich ggplot2 und gridExtras auf meinem Mac aktualisiert. Jetzt gridExtras wird mit dem Fehler in Grund Plotten Fehler:grid.arrange von gridExtras beenden mit "nur 'grobs' erlaubt in 'gList'" nach dem Update

"nur 'Grobs' erlaubt in "GLIST""

Hier einige Code, die funktionieren sollte, aber nicht:

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") 

Diese Dumps aus der folgende Fehler:

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 

Jede Hilfe wird geschätzt!

+2

'grid.arrange' keine' main' Parameter (nach meiner Hilfe zumindest). Ihr Code funktioniert ohne das gut. –

+1

Hoffentlich haben Sie sich auch die Änderungen an ggplot2 2.0 angesehen. Es hat zwei Änderungen, die vorhandene Funktionalität in einigen Vis-Code beschädigen können. – hrbrmstr

+0

Yeah, war in Github rooting auf der Suche nach Release-Notes, fand nicht erwähnt, aber es ist ziemlich klar, was passiert ist. –

Antwort

27

Es ist, weil grid.arrange keinen main Parameter mehr hat (scheint sich um Sommer 2015 mit dem 2.0.0 Release beseitigt wurden) und damit meint, dass die main= Parameter ein grob sein muss. Um die main zu ersetzen, können Sie jetzt den Parameter top (sowie eine bottom, left und right) verwenden.

So funktioniert das zum Beispiel:

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") 

Die Nachricht ein wenig verwirrend ist, das ist, weil es bei allen Parametern sieht es nicht weiß, und nimmt sie könnten grobs (grafische Objekte) sein, dass kann es Handlung. Eine verwirrende Fehlermeldung wie diese ist der Preis, den Sie für diese Flexibilität zahlen.

Hinweis, wenn Sie eine Menge von grobs haben, sollten Sie in Betracht ziehen, sie alle in eine Liste zu packen und die grobs = list(p1,p2,...) Technik zu verwenden.

enter image description here

+0

Das war es. Vielen Dank! –

+0

Gern geschehen. Breaking Changes kann ein Schmerz sein. –

+1

Ich bin mir ziemlich sicher, dass die Auszeichnung für die meisten nicht zusammenhängenden Fehlermeldung überhaupt gewinnt. Das hat mein Problem mit diesem Code behoben: 'grid.arrange (arraygrob (, main =" Großer Titel ", ncol = 1))' – TheProletariat