在ggplot中,如何为stat_bin2d获取两个图例("渐变"类型)?

时间:2017-09-18 10:11:35

标签: r ggplot2 graph legend

这里我有两个'群集',只有一个传奇。

我怎样才能获得两个"密度"有两种不同颜色渐变的传说?

我尝试了group,但它不起作用。

enter image description here

以下代码生成了上图:

library(ggplot2)

df <- data.frame(x=c(rnorm(1000,1,.1),rnorm(1000,3,.1)),
                 y=c(rnorm(1000,1,1),rnorm(1000,3,1)),
                 type=c(rep('a',1000),rep('b',1000)))

plot( ggplot(df) + 
      stat_bin2d(aes(x,y,fill=..density..,group='type')))

2 个答案:

答案 0 :(得分:3)

使用alpha = ..density..可以解决问题:

ggplot(df, aes(x = x, y = y) ) + 
  stat_bin2d(mapping= aes(alpha = ..density.., fill = type)) 

enter image description here

更美观地使用stat_density2d例如:

ggplot(df, aes(x=x, y=y) ) + 
  stat_density2d(mapping= aes(alpha = ..level.., color= type), geom="contour", bins=6, size= 2) 

enter image description here

答案 1 :(得分:3)

我不知道指定多个填充渐变的方法。但是这里有一个解决方法,使用不同的透明度级别来模拟渐变,留下填充可以用类型映射:

ggplot(df, aes(x, y, fill = type)) + 
  stat_bin2d(aes(alpha = ..density..)) +
  scale_alpha(range = c(1, 0.1)) +
  theme_bw()

different colours