Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 自定义ggplot2中图例大小符号项_R_Ggplot2 - Fatal编程技术网

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

R 自定义ggplot2中图例大小符号项,r,ggplot2,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)

我将大小映射到一个具有类似于日志分布的变量——大部分是小值,但也有一些非常大的值。如何使图例显示低值范围内的自定义值?例如:

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)
我尝试了
p+guides(shape=guides\u legend(override.aes=list(size=8))
发布的解决方案,但它对我的绘图没有影响。在任何情况下,我都希望使用特定的图例大小值,例如v=c(10,25,50100250500),而不是默认范围,例如c(100200300400)

谢谢你的帮助


要在图例中获得不同的大小断点,请通过添加参数
breaks=
修改
scale\u size\u area()
。使用
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的快速响应:)