gpt4 book ai didi

r - ggplot 图例可以自由移动到图之外吗?

转载 作者:行者123 更新时间:2023-12-02 09:12:48 24 4
gpt4 key购买 nike

我有一个问题,用cowplot:::plot_grid绘制的图将左侧图的图例削减了几毫米。图例大小已经达到可读性的绝对最小值,并且两个图之间的空白是可以的(所以它不是我想要操纵的边距)。然而,即使使用 justification="left",图例也会比绘图面板大一点,然后在

之后被剪切
plot_grid(px, p2, align="h", nrow=1, rel_widths = c(1,0.675))

ggsave("plot.tiff", width=8.27, height=11.69/4)

enter image description here

左侧仍有足够的空白。我知道图例可以在绘图内自由移动,但是如果图例绘制在绘图外,是否可以将图例从其对齐 anchor 移动几厘米?

这个例子确实重现了问题,并且包含了我现实生活中的示例功能的许多参数(例如,以两种不同的宽度绘制网格),但我必须放大图例的字体大小,并且该示例没有图例左侧有额外的空白。

bp <- ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) +
geom_boxplot() + theme_bw() +
theme(legend.text = element_text(size=20), # IRL the font size is much smaller
axis.text.y=element_blank(),
legend.key.size = unit(0.2, "cm"),
legend.position = "bottom",
legend.justification="left")+
guides(fill=guide_legend(nrow=3)) +
coord_flip()
bp
bp1 <- bp + scale_fill_discrete("",labels=c("reallyreallyreallylongstring",
"evenlongerstring",
"youcannotbelievehowlongthisstringis!!11!"))


library(cowplot)
plot_grid(bp1, bp, align="h", nrow=1, rel_widths = c(1,0.675))
ggsave("test.tiff", width=8.27, height=11.69/4)

目前,我的解决方法是打印单个图并使用 illustrator 对其进行操作,这是我想避免的。

最佳答案

你可以试试

# get legend
legend_p1 <- get_legend(bp1)
legend_p2 <- get_legend(bp)

# remove legend
bp1_wl <- bp1 + theme(legend.position='none')
bp_wl <- bp + theme(legend.position='none')

# plot
plot_grid(plot_grid(bp1_wl, bp_wl, align="h", rel_widths = c(1,0.675)),
plot_grid(legend_p1,legend_p2, rel_widths = c(1,0.675)), nrow=2, rel_heights = c(1,0.4))

enter image description here

关于r - ggplot 图例可以自由移动到图之外吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50252089/

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