ggplot图例方块无法完全填充:为何出现贯穿线条?
解决ggplot2图例方块带贯穿线的问题
你遇到的问题是因为仅指定了图例形状为实心方块(shape=15),但未覆盖原图层的线条属性(比如原图表用了geom_line,图例默认保留线条样式),导致线条贯穿方块。
解决方案
在override.aes中添加linetype = 0(或linetype = NA)移除贯穿线条,同时保留实心方块:
guides(color = guide_legend(override.aes = list(shape = 15, linetype = 0)))
如果你的图表基于geom_point且方块仍未完全实心,可同步指定color(shape=15为实心型形状,颜色由color参数控制):
guides(color = guide_legend(override.aes = list(shape = 15, color = "#your_color_code", linetype = 0)))
原理说明
shape=15是ggplot2内置的实心正方形,本身为实心样式,但如果原图例继承了线条元素(如来自geom_line),线条会叠加在方块上。linetype=0会隐藏线条,让实心方块完整显示。
内容的提问来源于stack exchange,提问作者P.08
相关产品推荐
相关产品推荐

