Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 分离图的所有尺寸_R_Ggplot2_Graphics - Fatal编程技术网

R 分离图的所有尺寸

R 分离图的所有尺寸,r,ggplot2,graphics,R,Ggplot2,Graphics,cowplot和pathwork等包允许对齐不同的绘图 下一个/上一个,打印区域尺寸同步,而不考虑 轴标签。 e、 g install.packages(“ggridges”) 安装软件包(“补丁”) 图书馆(tidyverse) 图书馆(GG) 图书馆(拼凑) p1在cowplot内部,有一个函数align_margin,用于在ggplot Grob列表中对齐左右边距 我们还包括几个情节: p1 <- ggplot(iris, aes(Sepal.Length, Species)) +

cowplot和pathwork等包允许对齐不同的绘图 下一个/上一个,打印区域尺寸同步,而不考虑 轴标签。 e、 g

install.packages(“ggridges”)
安装软件包(“补丁”)
图书馆(tidyverse)
图书馆(GG)
图书馆(拼凑)

p1在cowplot内部,有一个函数
align_margin
,用于在ggplot Grob列表中对齐左右边距

我们还包括几个情节:

p1 <- ggplot(iris, aes(Sepal.Length, Species)) + 
    geom_density_ridges() 
p2 <- ggplot(mtcars) + 
    geom_point(aes(mpg, disp))
p3 <- ggplot(PlantGrowth) + 
    geom_boxplot(aes(group, weight))
p4 <- ggplot(USArrests) + 
    geom_point(aes(Assault, UrbanPop))
要获得个人:

grid.draw(grobs[[1]])

这并不容易。虽然我有点讨厌自己提出这个建议,但将拼凑的绘图保存为pdf,然后将其“剪切”为单独的绘图可能是最简单的解决方法。另一个选项是使用标记并指定打印宽度。这里有很多关于这方面的线索,一个好的起点可能在这里:。也可能有帮助:。或者@dww刚才对我自己的一个问题的回答,P.s.我现在做的是打印我的绘图,通常是带有相同宽度维度的pdf格式(我通常使用
ggsave(绘图=x,文件名='x.pdf',宽度=…,高度=…)
。将导致非常相似的轴长度,但不完全相同。如果对象分布在多个页面上,这可能不会引起注意,因此这将是最简单的选择。@Tjebo谢谢你的提示,我有时也会手动操作,你并不孤单:p。请参阅下面的建议以获得解决方案,并祝holliday愉快这就是诀窍。这也是一种非常严格的方法,所以我可能会经常使用它。谢谢@StupidWolfYeah出版物可能会很痛苦,很高兴减轻痛苦:)
grobs <- lapply(list(p1, p2, p3,p4), as_grob)
plot_widths <- lapply(grobs, function(x) {x$widths})
aligned_widths <- align_margin(align_margin(plot_widths, "first"),"last")
# reset widths
for (i in seq_along(plots)) {
       grobs[[i]]$widths <- aligned_widths[[i]]
     }
plot_grid(plotlist = grobs, ncol = 1)
grid.draw(grobs[[1]])