如何修改ggplot结合patchwork绘制的组合箱线图的图例标签
问题原因
你的图例由color美学映射生成,修改x轴相关的scale_x_discrete不会对图例生效,你之前调用scale_color_manual仅指定了颜色,没有配置图例标题和取值标签,因此没有达到修改效果。
可选解决方法
两种方案任选其一即可:
方案1:提前预处理数据(推荐,一劳永逸)
先将control_case列转为因子,直接指定水平对应的标签,后续所有映射都会自动读取标签:asthma_desc$control_case <- factor( asthma_desc$control_case, levels = c(1, 2), labels = c("control", "case") )之后在全局配置中补充
labs(color = "Group")即可修改图例标题。方案2:直接修改现有
scale_color_manual配置(无需改动原始数据)
在你现有的全局scale_color_manual调用中增加name和labels参数,如果担心取值顺序对应错误,可以用键值对形式明确匹配,修改后的完整组合代码如下:patchwork <- plot_mac + plot_lym + plot_neu + plot_mast + plot_eos + plot_layout(guides = 'collect') patchwork & theme_minimal() & scale_color_manual( name = "Group", # 自定义图例标题 labels = c("1" = "control", "2" = "case"), # 明确匹配原始取值和展示标签 values = c("black", "red") ) & theme(axis.title.x = element_blank(), axis.ticks.x=element_blank(), axis.text.x=element_blank(), text=element_text(size=7)) & ylim(0,100)执行上述代码后,收集到的统一图例就会自动更新为你需要的样式。
内容的提问来源于stack exchange,提问作者Elena
相关产品推荐
相关产品推荐

