求助:ggplot2中geom_bin_2d按变量填充失效问题解决
问题解决:ggplot2 geom_bin_2d添加fill变量后显示灰色的问题
原因
geom_bin_2d默认统计每个分箱内的观测数量来映射填充色。当你在aes中指定fill = Miss.时,它无法自动处理分箱内多个Miss.值的映射逻辑(不知道用均值、中位数还是其他统计量),导致无法生成有效颜色刻度,最终所有元素显示灰色。
解决方案
使用stat_summary_2d替代geom_bin_2d,明确指定分箱内Miss.值的汇总函数(比如均值、中位数等),让每个分箱生成单一填充值:
ggplot(data = RightFB, aes(x = TMHrzBrk, y = TMIndVertBrk, fill = Miss.)) + stat_summary_2d(bins = 15, fun = mean) + # 可替换为median等其他汇总函数 scale_fill_continuous(type = "viridis") + ylim(5, 20) + xlim(0, 15) + coord_fixed(1.3)
或者直接修改geom_bin_2d的统计逻辑,指定fun参数:
ggplot(data = RightFB, aes(x = TMHrzBrk, y = TMIndVertBrk, fill = Miss.)) + geom_bin_2d(bins = 15, fun = mean) + scale_fill_continuous(type = "viridis") + ylim(5, 20) + xlim(0, 15) + coord_fixed(1.3)
额外提示
如果数据存在缺失值,可添加na.rm = TRUE参数忽略缺失值,避免部分分箱仍显示灰色:
stat_summary_2d(bins = 15, fun = mean, na.rm = TRUE)
内容的提问来源于stack exchange,提问作者user19422662
相关产品推荐
相关产品推荐

