在ggplot2中自定义图例大小符号项

时间:2013-12-09 13:29:34

标签: r ggplot2

我正在将大小映射到变量,类似于日志分布 - 大多数是小值,但有一些非常大。如何使图例在低值范围内显示自定义值?例如:

df = data.frame(x=rnorm(2000), y=rnorm(2000), v=abs(rnorm(2000)^5))
p = ggplot(df, aes(x, y)) + 
  geom_point(aes(col=v, size=v), alpha=0.75) +
  scale_size_area(max_size = 10)
print(p)

我已尝试在this SO question中发布p + guides(shape=guide_legend(override.aes=list(size=8)))解决方案,但这对我的情节没有任何影响。在任何情况下,我都想使用特定的图例大小值,例如v = c(10,25,50,100,250,500)而不是默认范围,例如C(100,200,300,400)..

感激帮助。

enter image description here

1 个答案:

答案 0 :(得分:4)

要在图例中获得不同的大小断点,请通过添加参数scale_size_area()来修改breaks=。使用breaks=,您可以在需要的位置设置断点。

ggplot(df, aes(x, y)) + 
  geom_point(aes(col=v, size=v), alpha=0.75) +
  scale_size_area(max_size = 10,breaks=c(10,25,50,100,250,500))