我使用r中的patchwork包来创建图面板,如下所示:
patchwork
panel<- (p1+ plot_spacer()+p2 + p3)+ plot_layout(ncol = 2) + plot_layout(guides = "collect") panel
我想指定图例以转到右上方的空面板,大致如下所示感谢您的指点
sg3maiej1#
对于此用例,patchwork提供可用于放置图例的guide_area():
guide_area()
library(patchwork) library(ggplot2) p1 <- p2 <- p3 <- ggplot(mtcars, aes(hp, mpg, color = factor(cyl))) + geom_point() p1 + guide_area() + p2 + p3 + plot_layout(ncol = 2) + plot_layout(guides = "collect")
1hdlvixo2#
正如@kat所建议的,一种解决方案是将牛斑图与拼凑图结合使用
library("cowplot") library("patchwork") legend_grob <-cowplot::get_legend(p1) #get legend #emove legend in the original plots p1 <- p1+theme(legend.position = "none") p2 <- p2+theme(legend.position = "none") p3 <- p3+theme(legend.position = "none") # now patchwork it p1+legend_grob+p2+p3) plot_layout(ncol = 2)
2条答案
按热度按时间sg3maiej1#
对于此用例,
patchwork
提供可用于放置图例的guide_area()
:1hdlvixo2#
正如@kat所建议的,一种解决方案是将牛斑图与拼凑图结合使用