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

使用facet grid绘制dumbbell plot并列图出现分面变量报错如何解决?

报错原因
  • 拼写错误:你的数据集内会话对应的列名为Session,但facet_wrap中写的是Session.(末尾多了一个点),程序无法识别该不存在的列。
  • 图层变量缺失:dumbbell函数默认只会把传入的id、key等核心参数对应的列带入绘图图层,你要用来分面的Session没有提前声明,导致所有图层都缺失该变量,无法完成分面计算。后续的min/max警告也是因为分面变量缺失,绘图时无法计算坐标轴范围导致的。
修正后完整可运行代码
library(tidyverse)
library(dumbbell)
dumbbell::dumbbell(data10A, id = "conditon2", key = "Trial_type", 
                   group = "Session", # 新增:声明需要保留的分面变量
                   leg = "Test", 
                   column1 = "NormalizedJerk_102", 
                   column2 = "NormalizedJerk_104", 
                   delt = 1, lab1 = "Pre-test", lab2 = "Post-test", 
                   p_col1 = "black", p_col2 = "grey40", 
                   textsize = 4, segsize = 1.5, 
                   pointsize = 2.5, 
                   title = "Change in Normalized jerk from Pre- to Post-test")  + 
  # 修正:将错误的Session.改为实际存在的列名Session
  facet_wrap( Trial_type ~ Session, scales="free", ncol=2) +
  theme(axis.text.x = element_text(size = 12, face = "bold"),
        axis.text.y = element_text(size = 11, face = "bold"),
        legend.position = "right",
        legend.text = element_text(size = 12), 
        legend.title = element_text(size = 14),
        strip.text = element_text(face = "bold", size = 14, color = "black"))
调整说明
  • 给dumbbell函数增加group = "Session"参数,告知函数需要将Session列保留到所有绘图图层中,供分面逻辑调用
  • 修正facet_wrap中的列名拼写错误,将Session.改为数据集实际存在的Session
  • 调整后运行代码即可正常生成按Trial_type和Session分面的哑铃图,原有的min/max警告也会同步消失

内容的提问来源于stack exchange,提问作者Reuben Newton Addison

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:15:03