ggplot2中geom_point设置aes fill映射仅显示黑色问题求助
问题原因
geom_point 默认使用的形状(shape=16)属于无填充属性的实心形状,仅识别color参数,你映射的fill参数不会生效,所以点全是默认黑色。
解决方案
把geom_point的形状指定为支持填充的类型(最常用的是带填充的圆形shape=21),如果不需要点的边框可以额外设置color=NA,避免边框干扰填充色显示,代码运行后会自动生成两个独立图例,完全匹配需求:
ggplot(mtcars, aes(x=factor(gear), mpg)) + geom_segment(aes(x=factor(gear), xend=factor(gear), y = mpg, yend = mpg+1, color = factor(cyl)), size = 4) + # 指定shape=21启用填充属性,不需要边框可保留color=NA,需要边框的话删掉该参数即可 geom_point(aes(fill = factor(carb)), shape = 21, size = 2, color = NA) + scale_color_manual(values = c('red', 'green', 'blue'), name = "气缸数") + scale_fill_manual(values = c('pink', 'light green', 'light blue', 'yellow', 'purple', 'orange'), name = "化油器数") + coord_flip()
内容的提问来源于stack exchange,提问作者user2272972
相关产品推荐
相关产品推荐

