如何在ggplot2中移除图例特定参数(保留其余图例)
解决ggplot2中移除特定图例的问题
要只保留factor(am)(fill映射)的图例,移除factor(carb)(shape映射)的图例,有两种简单直接的方法:
方法一:在对应刻度函数中关闭图例
直接在scale_shape_manual()里添加guide = FALSE参数,就能关闭shape映射对应的图例,同时保留fill的图例:
ggplot(mtcars, aes(x= factor(cyl), y= hp, fill= factor(am), shape = factor(carb))) + theme_bw()+ scale_shape_manual(values= c(20:25), guide = FALSE)+ # 关闭shape图例 geom_boxplot(alpha = 0.5)+ geom_point(position=position_dodge(0.76), size = 4)
方法二:使用guides()函数单独控制
在绘图代码末尾添加guides(shape = FALSE),指定关闭shape对应的图例,这种方式更灵活,适合同时调整多个图例的显示状态:
ggplot(mtcars, aes(x= factor(cyl), y= hp, fill= factor(am), shape = factor(carb))) + theme_bw()+ scale_shape_manual(values= c(20:25))+ geom_boxplot(alpha = 0.5)+ geom_point(position=position_dodge(0.76), size = 4)+ guides(shape = FALSE) # 关闭shape图例
两种方法都能实现你的需求,根据个人习惯选择即可。
内容的提问来源于stack exchange,提问作者Eugene
相关产品推荐
相关产品推荐

