我尝试复制以下代码,但直方图被ggplot
调用替换。所以,这有效:
layout(matrix(c(1, 2, 3, 4, 4, 3, 4, 4, 5), ncol=3))
hist(1:20)
hist(1:40)
hist(1:60)
hist(1:80)
hist(1:90)
这并不是(每个ggplot创建一个新的全尺寸图像而不是布局的一部分):
layout(matrix(c(1, 2, 3, 4, 4, 3, 4, 4, 5), ncol=3))
ggplot(data.frame(x=1:20)) + stat_bin(aes(x=x))
ggplot(data.frame(x=1:40)) + stat_bin(aes(x=x))
ggplot(data.frame(x=1:60)) + stat_bin(aes(x=x))
ggplot(data.frame(x=1:80)) + stat_bin(aes(x=x))
ggplot(data.frame(x=1:90)) + stat_bin(aes(x=x))
第一段代码产生以下布局:
如何使用ggplot
以与第一次layout
调用相同的方式安排绘图?
答案 0 :(得分:3)
layout()
仅适用于基本图形。 ggplot使用具有不同方式或排列图的网格图形。尝试查看multiplot helper function。它的layout=
参数与layout
函数非常相似。例如
multiplot(layout=matrix(c(1, 2, 3, 4, 4, 3, 4, 4, 5), ncol=3),
ggplot(data.frame(x=1:20)) + stat_bin(aes(x=x)),
ggplot(data.frame(x=1:40)) + stat_bin(aes(x=x)),
ggplot(data.frame(x=1:60)) + stat_bin(aes(x=x)),
ggplot(data.frame(x=1:80)) + stat_bin(aes(x=x)),
ggplot(data.frame(x=1:90)) + stat_bin(aes(x=x))
)