根据落入其中的点数,六边形颜色的geom_hex几何形状ggplot2.这对于均匀分布的数据非常有效,但如果某些区域比其他区域更密集则不太好 - 由于存在单个非常密集的六边形,差异可能会被淹没.
如何使密度色标使用对数标度或其他一种标准化变换?
较新版本的ggplot通过新的stat()内部函数揭示了夏日度量的计算.这样可以更轻松地修改用于为hexes创建填充的统计信息.例如:
df <- data.frame(
x = rnorm(1000),
y = rnorm(1000)
)
plot.df <- ggplot(data = df, aes(x = x, y = y)) +
geom_hex(aes(fill = stat(count)))
print(plot.df)
Run Code Online (Sandbox Code Playgroud)
plot.df.log <- ggplot(data = df, aes(x = x, y = y)) +
geom_hex(aes(fill = stat(log(count))))
print(plot.df.log)
Run Code Online (Sandbox Code Playgroud)
代替log,你可以做任何你想要的任意转换,比如立方根等.
cut为避免创建具有混淆值的比例,您可以使用cut建立合理的类别边界,并将这些转换为使用原始计数值标记的数字比例:
plot.df.log.cut <- ggplot(data = df, aes(x = x, y = y)) +
geom_hex(aes(fill = stat(cut(log(count), breaks = log(c(0, 1, 2, 4, Inf)), labels = F, right = T, include.lowest = T)))) +
scale_fill_continuous(name = 'count', labels = c('1', '2', '4', '8+'))
print(plot.df.log.cut)
Run Code Online (Sandbox Code Playgroud)