我正在尝试在ggplot2中创建一个散点图,其大小映射到第三个变量和density2d轮廓。似乎传说因包含density2d轮廓而感到困惑。
例如,以下代码有效:
library('ggplot2')
set.seed(1)
x=rnorm(100); y=rnorm(100,sd=10); z=seq(1,10,length.out=100)
dd=data.frame(x=x,y=y,z=z)
ggplot(dd,aes(x,y,size=z))+geom_point()
但现在,请注意,当我添加对stat_density2d()
的调用时,图例的行为异乎寻常。特别是,图例显示蓝色块而不是黑色圆圈:
ggplot(dd,aes(x,y,size=z))+geom_point()+stat_density2d()
答案 0 :(得分:6)
由于size=
是您可以为stat_density2d()
设置的美学之一,在这种情况下,它是在ggplot()
调用中设置的,传说是针对两个行 - 点和点(点)隐藏在图例中的行下,geom_point()
之前调用stat_density2d()
。要从图例中删除蓝线,您可以在size=0.5
内手动设置stat_density2d()
(或其他一些值),然后图例就会正确。
ggplot(dd,aes(x,y,size=z))+geom_point()+stat_density2d(size=0.5)