如何用R ggplot合并A、B模型的箱线图并按Length条件给散点着色
问题原因
你将颜色判断逻辑放在了ggplot()的全局 aesthetic 映射中,导致geom_boxplot也会按照Length >= 250的规则对数据进行分组,因此每个模型下拆分出了2个箱线图。同时注意原数据集的长度列名是首字母大写的Length,原代码中写的小写length会出现变量识别错误,另外原有颜色判断逻辑写反了,会导致Length >=250的点标记为黑色,不符合需求。
修正代码
scattertest %>% pivot_longer(cols = -Length, names_to = "Model", values_to = "Delta") %>% ggplot(aes(x = Model, y = Delta)) + geom_boxplot() + # 仅在散点层添加颜色映射,调整颜色规则匹配需求 geom_jitter(aes(color = ifelse(Length >= 250, "red", "black"))) + scale_color_identity()
效果说明
调整后箱线图不会受颜色分组逻辑影响,每个模型仅生成1个箱线图,同时仅散点会按照Length的数值条件着色,符合需求。
内容的提问来源于stack exchange,提问作者grace0726
相关产品推荐
相关产品推荐

