我正在将大小映射到变量,类似于日志分布 - 大多数是小值,但有一些非常大。如何使图例在低值范围内显示自定义值?例如:
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)..
感激帮助。
答案 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))