我希望为R中的一列,facet-wrapped图的每一行分配一个自定义宽度。(我知道这完全是非标准的。)
使用grid.arrange
我可以使用以下代码段为分面包裹的图表的每一行指定唯一的高度:
group1 <- seq(1, 10, 2)
group2 <- seq(1, 20, 3)
x = c(group1, group2)
mydf <- data.frame (X =x , Y = rnorm (length (x),5,1),
groups = c(rep(1, length (group1)), rep(2, length(group2))))
plot1 <- ggplot(mydf, aes(X, Y)) + geom_point()
plot2 <- ggplot(mydf, aes(X, Y)) + geom_point()
grid.arrange(plot1, plot2, heights=c(1,2))
上面的代码为图的每一行提供了一个独特的高度:
我想知道是否可以为绘图的每一行指定唯一的宽度,而不是为每一行指定唯一的高度。是否可以使用任何ggplot2扩展名?
答案 0 :(得分:2)
如果您使用ggplot plot.margin
中的theme()
功能,则可以执行此操作。您可以通过执行以下操作将每个绘图宽度设置为页面总长度的百分比:
plot1 <- ggplot(mydf, aes(X, Y)) + geom_point()+theme( plot.margin = unit(c(0.01,0.5,0.01,0.01), "npc"))
plot2 <- ggplot(mydf, aes(X, Y)) + geom_point()+theme( plot.margin = unit(c(0.01,0.2,0.01,0.01), "npc"))
当我们在npc
调用中使用plot.margin
s作为我们感兴趣的单位时,我们将相对于页面宽度进行设置。 0.5
和0.2
对应右边距。随着npc
的增加,你的情节会越小。
grid.arrange(plot1, plot2, heights=c(1,2))
答案 1 :(得分:2)