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

R ggplot2绘制两侧半小提琴图并添加分组均值连线问题求解

R可视化代码修正方案

问题原因说明

  • 多余完整小提琴图:原代码未对半小提琴的绘制范围按Session过滤,Pre组右侧的半小提琴和Post组左侧的半小提琴在坐标轴中间重叠,看起来像额外的完整小提琴。
  • 均值连线多余竖线:原代码绘制分组均值连线时,默认继承了全局的原始个体数据集,同一Session下同一Group的多个个体数据点被错误连接,产生了多余竖线。
  • 额外优化:原代码标准误计算逻辑错误,直接对4个分组均值计算整体SE,改为分组汇总时同步计算每个Session+Group组合的均值和对应标准误。

修正后完整代码

#libraries
library(tidyverse)
library(ggpubr)
library(gghalves)

#constats
size           = 1.5
alpha          = .4

#calculate mean and standard error by group and session
summary_RHR <- DF %>% 
  filter(!is.na(Session)) %>%
  group_by(Session, Group) %>% 
  summarise(
    mean_RHR = mean(RHR, na.rm = TRUE),
    se_RHR = sd(RHR, na.rm = TRUE)/sqrt(n())
  )

#ggplot
ggplot(data = subset(DF, !is.na(Session)),
       aes(x = Session, y = RHR, color = Group)) +
  # 个体散点
  geom_point(size  = size,
             alpha = alpha) +
  # 个体配对连线
  geom_line(aes(group = First.Name),
            alpha = 0.3) +
  # Pre组左侧半小提琴
  geom_half_violin(data = ~filter(.x, Session == "Pre"),
                   aes(fill = Group),
                   alpha = alpha, 
                   side = "l",
                   position = position_nudge(x = -0.2)) +
  # Post组右侧半小提琴
  geom_half_violin(data = ~filter(.x, Session == "Post"),
                   aes(fill = Group),
                   alpha = alpha, 
                   side = "r",
                   position = position_nudge(x = 0.2)) +
  # 分组均值连线,指定汇总数据集
  geom_line(data = summary_RHR,
            aes(y = mean_RHR, group = Group),
            linetype = 1, size =1.5) +
  # 分组误差棒,指定汇总数据集
  geom_errorbar(data = summary_RHR,
                aes(y = mean_RHR, 
                    ymin = mean_RHR - se_RHR, 
                    ymax = mean_RHR + se_RHR, 
                    group=Group), 
                width = 0.05, size = 1, alpha = .9) +
  stat_compare_means(comparisons = c("Pre","Post"), paired = TRUE, na.rm = T) +
  theme_classic(base_size=24)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:57:04