我正在尝试使用grid.arrange()
编译四个图形,并减少每个图的边距,以使其美观且紧凑。我想使用theme(plot.margin=unit(c(x, x, x , x), "cm"))
(欢迎其他解决方案)。
不久前,有人问了类似的问题: here
但是,plot.margin
现在需要参数units
,该参数没有默认值。我找不到关于R在此参数中期望的任何解释。有人举个例子吗?
有关可复制示例,请使用旧问题中提供的示例。 谢谢!
答案 0 :(得分:1)
我们有unit(c(t, r, b, l), "cm")
,其页边距大小分别在顶部,右侧,底部和左侧。实际上有一个默认值:
theme_get()$plot.margin
# [1] 5.5pt 5.5pt 5.5pt 5.5pt
一个例子:
qplot(mpg, wt, data = mtcars) +
theme(plot.margin = unit(c(5, 15, 25, 35), "pt"),
plot.background = element_rect(fill = "grey90"))
答案 1 :(得分:1)
您可以在单位参数中使用“ cm”,“ lines”或“ points”。下面是一些示例代码。只需更改theme(plot.margin = unit(c(x,x,x,1.5),“ lines”))中的最后一个参数即可在开始处对齐3个图形。
library(ggplot2)
library(grid)
library(gridExtra)
test1 <- qplot(rnorm(100)) +
ggtitle("Title") +
theme(axis.text=element_text(size=16),
axis.title=element_text(size=18),axis.title.x=element_text(size=14),
plot.margin = unit(c(1, 1, 0, 1.4), "lines"),
legend.text=element_text(size=16))
test2 <- qplot(rnorm(100)) +
ggtitle("Title") +
theme(axis.text=element_text(size=16),
axis.title=element_text(size=18),axis.title.x=element_text(size=14),
plot.margin = unit(c(1, 1, 0, 1.2), "lines"),
legend.text=element_text(size=16))
test3 <- qplot(rnorm(100)) +
ggtitle("Title") +
theme(axis.text=element_text(size=16),
axis.title=element_text(size=18),axis.title.x=element_text(size=14),
plot.margin = unit(c(1, 1, 0, 1), "lines"),
legend.text=element_text(size=16))
grid.arrange(test1,test2,test3, nrow=3)