我正在将大小映射到一个变量,比如对数分布——主要是小值,但也有一些非常大的值。如何让图例在低值范围内显示自定义值?例如:
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)..
感谢帮助。

要在图例中获得不同大小的断点,请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)
| 归档时间: |
|
| 查看次数: |
2002 次 |
| 最近记录: |