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

geo*_*ory 4 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)
Run Code Online (Sandbox Code Playgroud)

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

感谢帮助。

在此处输入图片说明

Did*_*rts 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))
Run Code Online (Sandbox Code Playgroud)