ggplot2自定义图例形状

Ali*_*Ali 5 r shape legend scatter-plot ggplot2

当我们在散点图中同时具有形状和颜色图例时,颜色图例的形状会产生误导:

foo <- data.frame(
  length=runif(10),
  height=runif(10),
  group=as.factor(sample(3,10,rep=T)),
  quality=as.factor(sample(2,10,rep=T))
)

ggplot(foo, aes(x = length, y = height, color=group, shape=quality)) + 
  geom_point(size=5)
Run Code Online (Sandbox Code Playgroud)

这将产生下面的图.如您所见,"圆"形状是为对象保留的quality==1,但在group图例中,所有3个组都以"圆"形状呈现 - 使用不同的颜色,这可能会产生误导.

如果group图例由一个尚未为特定目的保留的形状表示,那就好了,就像用特定颜色填充整个图例项目一样.

你有什么简单的想法如何解决这个问题?

在此输入图像描述

Sve*_*ein 18

可以使用以下方法手动更改图例的属性guides:

ggplot(foo, aes(x = length, y = height, color=group, shape=quality)) + 
  geom_point(size=5) + 
  guides(colour = guide_legend(override.aes = list(shape = 15)))
Run Code Online (Sandbox Code Playgroud)

只需使用shape参数来找到合适的形状.

在此输入图像描述

  • @Ali当然,这与答案中的技术类似:在图中添加`+ guides(shape = guide_legend(override.aes = list(color ="pink")))`. (2认同)