如何移除ggplot绘图图例中各形状后的字母a?
解决ggplot图例中出现额外字母a的问题
这个问题我之前也碰到过,原因很明确:你在geom_text()里把label=a放在了aes()映射中,ggplot会把这个标签当成一个需要展示的美学属性,所以图例里自动添加了文本的示例(也就是数据里第一个a列的值——字母a)。下面给你几种简单的解决办法:
方法1:将label移出aes映射(最推荐)
因为你的标签是固定对应每个点的a列值,不需要作为动态映射的美学属性,直接把label放在aes()外面即可:
ggplot(data = df, aes(x= b, y= c, shape=d, color = d)) + geom_point() + geom_text(label = df$a, size=3.2, hjust = 0.5, vjust = 1.5)
方法2:让geom_text不显示图例
如果因为某些需求必须把label放在aes()里,那可以给geom_text()加上show.legend = FALSE参数,直接让文本部分不参与图例生成:
ggplot(data = df, aes(x= b, y= c, shape=d, color = d)) + geom_point() + geom_text(aes(label=a), size=3.2, hjust = 0.5, vjust = 1.5, show.legend = FALSE)
方法3:手动覆盖图例的文本属性
这种方法更灵活,适合需要自定义图例其他属性的场景,通过guides()函数把图例里的文本清空:
ggplot(data = df, aes(x= b, y= c, shape=d, color = d)) + geom_point() + geom_text(aes(label=a), size=3.2, hjust = 0.5, vjust = 1.5) + guides( shape = guide_legend(override.aes = list(label = "")), color = guide_legend(override.aes = list(label = "")) )
内容的提问来源于stack exchange,提问作者Israel
相关产品推荐
相关产品推荐

