grille.organiser à partir de gridextras sortant avec "seulement' grobs 'autorisé dans' gList '" après la mise à jour

Je viens de mettre à jour R, R Studio, et un tas de paquets, y compris ggplot2 et gridExtras sur mon Mac. Maintenant, gridExtras échoue dans le traçage de base avec l'erreur:

"seuls les" grobs "autorisés dans" gList ""

Voici un code qui devrait fonctionner mais qui ne fonctionne pas:

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

Cela supprime l'erreur suivante:

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

Toute aide est appréciée!

26
demandé sur Mike Wise 2016-01-17 16:31:38

1 réponses

C'est parce que grid.arrange n'a plus de paramètre main (semble avoir été éliminé vers L'été 2015 avec la version 2.0.0) et pense donc que le paramètre main= doit être un grob. Pour remplacer les main, vous pouvez utiliser le top paramètre (ainsi que d'un bottom, left, et right).

, Donc cela fonctionne par exemple:

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

Le message est un peu confus, c'est parce qu'il regarde tous les paramètres, il ne sait pas et suppose qu'ils pourraient être grobs (graphique objets) qu'il peut tracer. Un message d'erreur déroutant comme celui-ci est le prix que vous payez pour cette flexibilité.

Note: - Si vous avez beaucoup de grobs vous devriez envisager de les emballer tous dans une liste et utiliser le formulaire:

grid.arrange( grobs = list(p1,p2,...),...

Voici ce que le code ci-dessus entraîne:

entrez la description de l'image ici

31
répondu Mike Wise 2018-04-27 18:28:55