ggplot热力图填充色配置报错:重复fill比例尺及连续值传入离散轴问题
解决ggplot热力图填充色设置问题
第一个警告的原因及修复
你同时调用了scale_fill_gradient()和scale_fill_continuous(),这两个都是控制连续填充色的比例尺函数,后者会直接覆盖前者,因此触发警告。只需将参数合并到同一个比例尺函数中即可:
# 方案1:用scale_fill_gradient同时指定渐变色系和数值范围 HP4 <- ggplot(Sabinecompressedkpa, aes(Distance, Depth)) + geom_tile(aes(fill = kpa)) + scale_fill_gradient(low = "yellow", high = "red", limits = c(0, 50)) HP4 # 方案2:用scale_fill_continuous搭配YlOrRd色系 HP4 <- ggplot(Sabinecompressedkpa, aes(Distance, Depth)) + geom_tile(aes(fill = kpa)) + scale_fill_continuous(type = "YlOrRd", limits = c(0, 50)) HP4
第二个错误的原因及修复
Error: Continuous value supplied to discrete scale错误,是因为你手动设置填充色时用了离散型比例尺(比如scale_fill_discrete()或直接指定离散颜色向量),但你的kpa是连续数值类型,两者不兼容。
如果要手动定义连续渐变的颜色,必须使用连续型填充比例尺,比如:
# 自定义三段渐变(低-中-高对应蓝-黄-红,中点设为25) HP4 <- ggplot(Sabinecompressedkpa, aes(Distance, Depth)) + geom_tile(aes(fill = kpa)) + scale_fill_gradient2(low = "blue", mid = "yellow", high = "red", midpoint = 25, limits = c(0, 50)) HP4
内容的提问来源于stack exchange,提问作者Natalie
相关产品推荐
相关产品推荐

