gpt4 book ai didi

r - 大小不同的多个ggplots

转载 作者:行者123 更新时间:2023-12-03 11:34:05 24 4
gpt4 key购买 nike

使用grid.arrange包中的gridExtra在一个矩阵中排列多个图是相对简单的,但是当某些图要大于其他图时,如何排列图(我正在处理的图来自ggplot2)?在基础上,我可以使用layout(),例如下面的示例:

 nf <- layout(matrix(c(1,1,1,2,3,1,1,1,4,5,6,7,8,9,9), byrow=TRUE, nrow=3))
layout.show(nf)
ggplot图的等效项是什么?

一些要列入的地块
library(ggplot2)
p1 <- qplot(x=wt,y=mpg,geom="point",main="Scatterplot of wt vs. mpg", data=mtcars)
p2 <- qplot(x=wt,y=disp,geom="point",main="Scatterplot of wt vs disp", data=mtcars)
p3 <- qplot(wt,data=mtcars)
p4 <- qplot(wt,mpg,data=mtcars,geom="boxplot")
p5 <- qplot(wt,data=mtcars)
p6 <- qplot(mpg,data=mtcars)
p7 <- qplot(disp,data=mtcars)
p8 <- qplot(disp, y=..density.., geom="density", data=mtcars)
p9 <- qplot(mpg, y=..density.., geom="density", data=mtcars)

最佳答案

您可以像以下示例一样使用嵌套的arrangeGrob调用:

library(ggplot2)
library(gridExtra)

p <- ggplot(data.frame(x=1, y=1), aes(x,y)) + geom_point()

grid.arrange(
arrangeGrob(
p,
arrangeGrob(p, p, nrow=2),
ncol=2 ,widths=c(2,1)),
arrangeGrob(p, p ,p ,ncol=3, widths=rep(1,3)),
nrow=2)

编辑:
gl <- lapply(1:9, function(ii) grobTree(rectGrob(),textGrob(ii)))

grid.arrange(
arrangeGrob(gl[[1]],
do.call(arrangeGrob, c(gl[2:5], ncol=2)),
nrow=1,
widths=3:2),
do.call(arrangeGrob, c(gl[6:9], nrow=1, list(widths=c(1,1,1,2)))),
nrow=2, heights=c(2,1))

关于r - 大小不同的多个ggplots,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18427455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com