gpt4 book ai didi

r - 对齐单独绘图的尺寸

转载 作者:行者123 更新时间:2023-12-04 15:36:57 28 4
gpt4 key购买 nike

像 cowplot 和 pathwork 这样的包允许对齐不同的图next/on 彼此与绘图区域尺寸同步,无论所需的空间如何轴标签。例如

install.packages("ggridges")
install.packages("patchwork")
library(tidyverse)
library(ggridges)
library(patchwork)
p1 <- ggplot(iris, aes(Sepal.Length, Species)) +
geom_density_ridges()
p2 <- ggplot(mtcars) +
geom_point(aes(mpg, disp))
p1 + p2 + plot_layout(ncol=1) #different length of y axis label, same plot area size.

这对 html 显示来说都很好。然而,对于期刊,我和许多其他人需要制作“独立”的情节。这些图表显示来自不同来源的数据,并具有不同的轴标签长度。为了专业的外观,这些地 block 还需要具有相同的地 block 大小。在文章格式中,它们通常会出现在相同格式的页面但它们之间有文本,并且

那么,我如何使它们需要完全“对齐”(如上例所示),但可以说是作为单独的 r 对象。

我怎样才能做到这一点?

最佳答案

在 cowplot 中,有一个函数 align_margin 可以对齐 ggplot 列表中的左右边距。

我们包括了更多的情节:

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))

the vignette 稍作修改:

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]])

关于r - 对齐单独绘图的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59405613/

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