You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

geom_hex高亮特定六边形分箱并调线宽:分箱对齐故障

解决Hexbin分箱错位与线宽调整问题

问题根源在于全局分组设置干扰了分箱逻辑,且两个图层的分箱参数未统一,导致分箱边界错位。以下是修正后的代码:

n = 1000

df = data.frame(x = rnorm(n), 
                y = rnorm(n),
                group = sample(0:1, n, prob = c(0.9, 0.1), replace = TRUE))
df$sums[df$group == 1] = runif(sum(df$group == 1), min = 0.5, max = 2)

# 修正后的绘图代码
pp = ggplot(df, aes(x = x, y = y)) +  # 移除全局group设置,避免干扰分箱逻辑
  geom_hex(bins = 30) +  # 指定分箱数量,与后续stat图层保持一致
  stat_summary_hex(
    data = subset(df, group == 1),  # 仅传入需要高亮的分组数据
    aes(z = sums, linewidth = after_stat(value)),
    fun = ~sum(.x), 
    col = "gold", 
    fill = NA,
    bins = 30  # 与geom_hex使用完全相同的分箱参数
  ) + 
  scale_linewidth(range = c(0.1, 1))
pp

关键修改说明:

  • 移除全局group=group:原全局aes的分组设置会让stat_summary_hex按group拆分计算分箱,与geom_hex的全局分箱逻辑冲突,直接导致错位。
  • 统一分箱参数:给两个图层都指定bins(或binwidth),确保分箱边界完全对齐。
  • 过滤高亮图层数据源:只传入group=1的数据,避免无sums值的行干扰统计计算,同时提升效率。

修改后,高亮的六边形边框会与底层分箱完全对齐,且能通过scale_linewidth正常调整线宽。

内容的提问来源于stack exchange,提问作者SamPassmore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:22:39