You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用ggplot2和patchwork实现共享轴标签与自定义图例

解决方案:ggplot2+patchwork实现共享图例与轴标签的箱线图

1. 修改图例标题、标签并置顶

通过scale_fill_discrete()(若用颜色映射则替换为scale_color_discrete())自定义图例标题和标签,再用theme(legend.position = "top")将图例移至绘图顶部。

2. 用patchwork实现共享轴标签与图例

使用patchwork的plot_layout(guides = "collect")合并共享图例,通过&运算符结合全局设置统一轴标签,避免子图重复显示。

完整代码示例

library(ggplot2)
library(patchwork)

# 加载你的数据集(替换为实际数据加载代码)
# MenRG_Final <- read.csv("你的数据路径")

# 模拟测试数据(可跳过)
set.seed(123)
MenRG_Final <- data.frame(
  P1DistanceRun = rnorm(200, mean = 50, sd = 10),
  PointNumber = factor(sample(c("测点1", "测点2"), 200, replace = TRUE)),
  Group = factor(sample(c("对照组", "处理组"), 200, replace = TRUE))
)

# 绘制第一个箱线图(含图例设置)
p1 <- ggplot(MenRG_Final[MenRG_Final$PointNumber == "测点1", ], 
             aes(x = Group, y = P1DistanceRun, fill = Group)) +
  geom_boxplot(width = 0.6) +
  labs(x = "", y = "") + # 隐藏子图轴标签
  scale_fill_discrete(name = "分组类型", 
                      labels = c("对照组", "处理组")) + # 自定义图例标题和标签
  theme(legend.position = "top")

# 绘制第二个箱线图(移除重复图例)
p2 <- ggplot(MenRG_Final[MenRG_Final$PointNumber == "测点2", ], 
             aes(x = Group, y = P1DistanceRun, fill = Group)) +
  geom_boxplot(width = 0.6) +
  labs(x = "", y = "") +
  theme(legend.position = "none")

# 组合图形并设置全局共享元素
(p1 + p2) +
  plot_layout(guides = "collect") + # 合并共享图例
  plot_annotation(title = "不同测点的跑步距离箱线图",
                  title.position = "plot",
                  title.hjust = 0.5) &
  labs(x = "分组", y = "跑步距离(P1DistanceRun)") & # 全局轴标签
  theme(plot.title = element_text(size = 14, face = "bold"),
        axis.title.x = element_text(margin = margin(t = 10)),
        axis.title.y = element_text(margin = margin(r = 10)))

关键说明

  • 图例调整:scale_fill_discrete()的name参数修改图例标题,labels参数替换图例项文本;theme(legend.position = "top")将图例移至顶部。
  • 共享轴标签:先隐藏子图的轴标签,再通过&运算符统一设置全局轴标签,plot_layout(guides = "collect")自动合并重复图例。
  • 若你的图形映射不是填充色(fill),而是线条色(color),只需将所有fill相关的函数替换为color对应函数即可。

内容的提问来源于stack exchange,提问作者Mathieu Rousseau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 18:40:18