ggplot2自定义图例形状

时间:2012-11-19 15:21:47

标签: r ggplot2 shape legend scatter-plot

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

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)

这将产生下图。如你所见,&#34;圈&#34;形状是为quality==1的对象保留的,但在group图例中,所有3个组都显示在&#34; circle&#34;形状 - 颜色不同,这可能会产生误导。

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

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

enter image description here

1 个答案:

答案 0 :(得分:17)

可以使用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)))

只需使用shape参数找到合适的形状即可。

enter image description here