Mik*_*hea 33 r ggplot2 gridextra r-grid
我刚刚在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")
Run Code Online (Sandbox Code Playgroud)
这会转储出以下错误:
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
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!
Mik*_*ise 38
这是因为grid.arrange没有main参数(似乎已经在2015年夏季与2.0.0版本一起被淘汰)因此认为main=参数必须是grob.要更换main,你可以使用top目前的参数(还有一个bottom,left和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")
Run Code Online (Sandbox Code Playgroud)
该消息有点令人困惑,因为它查看了它不知道的所有参数,并假设它们可能是grobs(图形对象)它可以绘制的.像这样令人困惑的错误消息是您为此灵活性支付的价格.
注意: - 如果您有很多,grobs您应该考虑将它们全部打包到列表中并使用以下表格:
grid.arrange( grobs = list(p1,p2,...),...
Run Code Online (Sandbox Code Playgroud)
以上代码的结果如下:
如果使用基本图生成图(如grid.arrange旨在与“网格图形对象”(grobs)一起使用,例如ggplot2.
人们可以找到等效的网格图或使用基础图形方法来堆叠图(如下)。
对于这样的图,有时更容易首先确定图的尺寸,然后将图导出为单独的文件,将它们导入到power point(使用适合图形尺寸的自定义幻灯片大小),排列图,然后导出高分辨率文件。
基本图的解决方案:
par(mfrow = c(2, 1))
plot(rnorm(100))
hist(rnorm(100))
par(mfrow = c(1, 1)) #reset this parameter
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31518 次 |
| 最近记录: |