问题描述
我想使用 marginplot()(VIM 包)生成多个图,然后将它们排列成一个大图。我尝试使用 grid.arrange(grid/gridExtra 包)但它不起作用。错误是,期望 grob 作为输入。所以我尝试首先将 marginplot 转换为 ggplot (as.ggplot) 或 grob (as.grob) 但这不起作用。有没有人知道如何安排情节?
library(VIM)
library(ggplotify)
library(grid)
library(gridExtra)
x <- cars[,c("speed","dist")]
marginplot(x)
y <- cars[,"dist")]
marginplot(y)
p <- qplot(1,1)
#p2 <- as.ggplot(marginplot(x))
r <- rectGrob(gp=gpar(fill="grey90"))
grid.arrange( r,p,r,ncol=2)
我用汽车创建了一个小代码,在那里我设法安排了灰色方块和 qplots。把我不能添加边距图。
解决方法
使用基本图会发生此错误。在这里学习:grid.arrange from gridExtras exiting with "only 'grobs' allowed in 'gList'" after update
grid.arrange
旨在与“网格图形对象”(grobs)一起使用,例如 ggplot2
。
人们可以找到等效的网格图或使用基本图形方法来堆叠图。 试试这个:
library(VIM)
x <- cars[,c("speed","dist")]
y <- cars[,"dist")]
par(mfrow = c(2,2))
marginplot(x)
marginplot(y)
plot(rnorm(100))
hist(rnorm(100))
par(mfrow = c(1,1)) #reset this parameter