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

4

我正在将大小映射到一个变量上,使用类似对数分布的方法 - 大多数是小的值,但也有一些非常大的值。如何让图例显示低值范围内的自定义值?例如:

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)

我尝试了在这个SO问题中发布的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个回答

5
为了在图例中获得不同大小的断点,请修改 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))

感谢Didzis的快速回复 :) - geotheory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接