gpt4 book ai didi

r - 在 ggplot2 中对齐/设置边距/图形区域的宽度

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

我需要在彼此下方放置几个图,并且我希望边距和图形区域的宽度相同,以便它们整齐地对齐。请注意,我需要两个单图,而不是一个联合图。我想将每个文件保存在一个单独的 PNG 文件中。我只希望它们的结构(边距、图形区域大小)相同。

library(ggplot2)

d <- data.frame(label=c("some very longe label with lots of text",
"another long label with lots of text",
"short",
"also short",
" short",
" also short"),
x = 1:6)

ggplot(d[1:2, ], aes(label, x)) + geom_bar(stat = "identity") + coord_flip()
ggplot(d[3:4, ], aes(label, x)) + geom_bar(stat = "identity") + coord_flip()

enter image description here
enter image description here

我想要的是 plot 2 与 plot 1 具有相同的左边距宽度,或多或少像下面一样,当然不添加额外的空格;)

enter image description here

在基本图形中,我只会设置 par("mar")因此。

我怎样才能在 ggplot 中实现这一点?

最佳答案

基于 last link from the comment above 的回答,
您可以将绘图的宽度相等。与该答案的唯一区别是它们没有合并。

所以对于你的情节

library(ggplot2)
p1 <- ggplot(d[1:2, ], aes(label, x)) + geom_bar(stat = "identity") + coord_flip()
p2 <- ggplot(d[3:4, ], aes(label, x)) + geom_bar(stat = "identity") + coord_flip()

等宽绘图
library(grid)
gl <- lapply(list(p1,p2), ggplotGrob)
wd <- do.call(unit.pmax, lapply(gl, "[[", 'widths'))
gl <- lapply(gl, function(x) {
x[['widths']] = wd
x})

阴谋
grid.newpage(); grid.draw(gl[[1]])
grid.newpage(); grid.draw(gl[[2]])

其中产生:

地块 1

enter image description here

地块 2

enter image description here

关于r - 在 ggplot2 中对齐/设置边距/图形区域的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41231876/

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