gpt4 book ai didi

r - ggplot2 中的嵌套 facet_wrap()

转载 作者:行者123 更新时间:2023-12-04 11:32:23 25 4
gpt4 key购买 nike

假设我有这些数据:

set.seed(100)
mydf<-
data.frame(
day = rep(1:5, each=20),
id = rep(LETTERS[1:4],25),
x = runif(100),
y = sample(1:2,100,T)
)

如果我只想使用 facet_wrap() 绘制 id=="A" 的所有五天,我们会这样做:

ggplot(mydf[mydf$id=="A",], aes(x,y))  +  
geom_tile() +
facet_wrap(~day,ncol=1)

给出: enter image description here

但是,如果我想在 2x2 网格中自动绘制其中的四个并排绘制(即显示 A、B、C、D),是否可以使用嵌套构面?我试过像这样在函数中做多个变量:

ggplot(mydf, aes(x,y))  +  
geom_tile() +
facet_wrap(~ day+id)

但这给出了这个:

enter image description here

我正在寻找一种嵌套方法。每个面板中每天有五个多面行,每个图按 id 列/行。显然,对于少量绘图,我可以单独保存并使用 grid.arrange 等进行排列,但在实际数据中,我有很多绘图,因此希望尽可能自动化。

编辑:

作为对评论的回应——这是一种期望的输出:

enter image description here

最佳答案

试试这个,

p <- ggplot(mydf, aes(x,y))  +  
geom_tile() +
facet_wrap(~ day, ncol=1)

library(plyr)
lp <- dlply(mydf, "id", function(d) p %+% d + ggtitle(unique(d$id)))
library(gridExtra)
grid.arrange(grobs=lp, ncol=2)

enter image description here

关于r - ggplot2 中的嵌套 facet_wrap(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36202167/

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