首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >patchwork::plot_layout:先在顶行绘制一张图,然后在后续行中绘制数量可变的图,但所有图的宽度都保持不变

patchwork::plot_layout:先在顶行绘制一张图,然后在后续行中绘制数量可变的图,但所有图的宽度都保持不变
EN

Stack Overflow用户
提问于 2020-12-03 14:50:45
回答 1查看 225关注 0票数 2

我制作了一系列我想打印在同一页上的图。

主图dotplot_summarydotplots_indiv <- list(p1, p2, p3)中所有图的汇总。

我希望第一个图的大小与第二行的图的大小相同,但我不知道怎么做。

我的建议是:https://pastebin.com/wjhmSFiB

代码语言:javascript
复制
p_indiv <- wrap_plots(dotplots_indiv) 
patchwork <- (dotplot/p_indiv) + plot_layout(nrow = 2, widths = c(1, 3)

我正在考虑添加绘图间隔符,但可以放入较低行的绘图数量是可变的。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-12-03 21:39:24

我无法用你分享的数据重现这个问题,因为它给出了错误,但我勾画了一个例子。您可以在wrap_plots()中使用layout选项来定义矩阵样式,如下所示(我已经使用了iris数据):

代码语言:javascript
复制
library(patchwork)
library(ggplot2)
#Plot 1
G1 <- ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))+
  geom_point()
#Plot 2
G2 <- ggplot(iris,aes(y=Sepal.Length,x=Sepal.Width))+
  geom_point()
G3 <- ggplot(iris,aes(y=Petal.Width,x=Sepal.Width))+
  geom_point()
G4 <- ggplot(iris,aes(y=Petal.Length,x=Petal.Width))+
  geom_point()
#Wrap
#Layout
layout <- '
#A#
BCD
'
#Plot
wrap_plots(A = G1, B = G1,C=G2,D=G3, design = layout)

输出:

所有绘图将保持相同的尺寸,而不是这样:

它遵循与您共享的代码结构类似的代码结构。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65121156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档