如何在scale_color_manual中为剩余未指定值分配颜色?
解决方案
你可以通过scale_colour_manual的limits和na.value参数实现需求,无需修改原变量值,也不用显性指定所有因子颜色:
nice_colors <- c('orange', 'red', 'blue') names(nice_colors) <- c("4", "2", "3") ggplot(mtcars, aes(mpg, wt, color = factor(carb))) + geom_point() + scale_colour_manual( values = nice_colors, name = 'carb', limits = names(nice_colors), # 仅让已指定颜色的因子出现在图例 na.value = "green" # 未指定颜色的因子统一显示为绿色 ) + theme_bw()
关键说明
limits参数限定了图例的显示范围,只有你定义好颜色的"4""2""3"会出现在图例中,其余因子自动隐藏na.value会对所有不在values映射里的因子应用绿色,不用逐个手动指定- 原数据
mtcars$carb的变量值完全保持不变
内容的提问来源于stack exchange,提问作者purple1437
相关产品推荐
相关产品推荐

