使用大小映射和density2d的不寻常的图例

时间:2013-04-17 17:08:38

标签: r ggplot2

我正在尝试在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()

plot looks normal

但现在,请注意,当我添加对stat_density2d()的调用时,图例的行为异乎寻常。特别是,图例显示蓝色块而不是黑色圆圈:

ggplot(dd,aes(x,y,size=z))+geom_point()+stat_density2d()

plot legend shows blue blocks instead of black circles

1 个答案:

答案 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)

enter image description here