R 是否将现有绘图添加到平面网格?
我有一个列表列数据框,带有一些图,例如R 是否将现有绘图添加到平面网格?,r,ggplot2,R,Ggplot2,我有一个列表列数据框,带有一些图,例如 exdata <- diamonds %>% group_by(cut) %>% nest %>% crossing(dummy = 1:3) %>% + mutate(plots = map(.x = data, ~ ggplot(.x, aes(x = x, y = y)) + geom_point())) > exdata # A tibble: 15 x 4 cut data
exdata <- diamonds %>% group_by(cut) %>% nest %>% crossing(dummy = 1:3) %>%
+ mutate(plots = map(.x = data, ~ ggplot(.x, aes(x = x, y = y)) + geom_point()))
> exdata
# A tibble: 15 x 4
cut data dummy plots
<ord> <list> <int> <list>
1 Fair <tibble [1,610 × 9]> 1 <gg>
2 Fair <tibble [1,610 × 9]> 2 <gg>
3 Fair <tibble [1,610 × 9]> 3 <gg>
4 Good <tibble [4,906 × 9]> 1 <gg>
5 Good <tibble [4,906 × 9]> 2 <gg>
6 Good <tibble [4,906 × 9]> 3 <gg>
7 Very Good <tibble [12,082 × 9]> 1 <gg>
8 Very Good <tibble [12,082 × 9]> 2 <gg>
9 Very Good <tibble [12,082 × 9]> 3 <gg>
10 Premium <tibble [13,791 × 9]> 1 <gg>
11 Premium <tibble [13,791 × 9]> 2 <gg>
12 Premium <tibble [13,791 × 9]> 3 <gg>
13 Ideal <tibble [21,551 × 9]> 1 <gg>
14 Ideal <tibble [21,551 × 9]> 2 <gg>
15 Ideal <tibble [21,551 × 9]> 3 <gg>
exdata%groupby(cut)%%>%nest%%>%crossing(dummy=1:3)%%
+变异(绘图=地图(.x=数据,~ggplot(.x,aes(x=x,y=y))+geom_点()
>exdata
#一个tibble:15x4
切割数据虚拟图
1公平1
2公平2
3公平3
4好的1
5好的2
6好3
很好
很好
很好
10保费1
11保费2
12保费3
13理想1
14理想2
15理想3
exdata$plots
中现在有15个ggplots。我想模仿ggplot2::facet_grid
的功能,其中每个绘图都以指定的网格格式进行布局
具体来说,我喜欢从左到右水平切割,然后向下读取字段dummy作为垂直方向
如果我是从一个df构建绘图,我会做类似于df%>%facet\u网格(rows=dummy,columns=cut)
是否可以将facetgrid与现有绘图一起使用,而不是基于从单个数据帧创建绘图而使用此功能?如果是,如何进行?如果没有,如何按上述网格方式布置GGP图
library(patchwork)
exdata %>%
arrange(dummy) %>%
pull(plots) %>%
patchwork::wrap_plots(nrow = max(exdata$dummy))
我按dummy
进行排序,以便所有dummy==1
图首先出现。如果您有一个完全填充的网格,这应该可以正常工作。如果缺少一些组合,我认为您需要另一个解决方案,比如geoFact
包,但这实际上只是facet\u grid
的一个变体,需要将数据放在一个数据帧中