web-dev-qa-db-ja.com

更新後に「gList」で許可されている「grobs」のみで終了するgridExtrasのgrid.arrange

MacでR、R Studio、ggplot2およびgridExtrasを含む多数のパッケージを更新しました。現在、gridExtrasは次のエラーで基本的なプロットに失敗しています。

「「gList」では「grobs」のみが許可されています」

動作するはずですが、動作しないコードを次に示します。

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

これにより、次のエラーが出力されます。

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

どんな助けも大歓迎です!

32
Mike Shea

なぜなら grid.arrangeにはmainパラメーターがなくなり(2.0.0リリースで2015年夏頃に削除されたようです)、したがってmain=パラメータはグロブでなければなりません。 mainを置き換えるには、topパラメーター(およびbottomleft、およびright)を使用できます。

したがって、これはたとえば次のように機能します。

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

メッセージは少しわかりにくいです。これは、知らないすべてのパラメーターを調べ、それらがプロット可能なgrobs(グラフィックオブジェクト)であると想定しているためです。このような紛らわしいエラーメッセージは、その柔軟性に対して支払う価格です。

注:-grobsがたくさんある場合は、それらをすべてリストにまとめて、次の形式を使用することを検討してください。

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

上記のコードの結果は次のとおりです。

enter image description here

37
Mike Wise