我有一个data.frame,有两个变量,测量两个类的参数,每个类的数据量非常不同(~2500 个样本 vs~100000 个样本)。
示例代码:
plot.gg <- ggplot(data=rbind(
data.frame(x=rnorm(2500, m=0.41, sd=0.1), y=rnorm(2500, m=12000, sd=1000), type="A"),
data.frame(x=rnorm(100000, m=0.60, sd=0.1), y=rnorm(100000, m=6000, sd=1000), type="B")
),
mapping=aes(x=x, y=y, colour=type, group=type)
) + geom_hex(alpha=0.3)
plot.gg
Run Code Online (Sandbox Code Playgroud)
在这里,两个类都使用单一调色板,这导致 A 类的灰色填充均匀。我想为 A 类使用单独的调色板,以查看其分布。
另一个可接受的变体是标准化数据以查看百分比而不是计数。但是,我不知道如何使用..count..和(..count..)/sum(..count..)。
我还需要alpha在geom_hex看到重叠的课程。
成立。解决方案aes(fill=..density..)在geom_hex.
plot.gg <- ggplot(data=rbind(
data.frame(x=rnorm(2500, m=0.41, sd=0.1), y=rnorm(2500, m=12000, sd=1000), type="A"),
data.frame(x=rnorm(100000, m=0.60, sd=0.1), y=rnorm(100000, m=6000, sd=1000), type="B")
),
mapping=aes(x=x, y=y, colour=type, group=type)) + geom_hex(alpha=0.6, aes(fill=..density..))
plot.gg
Run Code Online (Sandbox Code Playgroud)
我也增加了alpha,因为它现在看起来更好。