使用ggplot2与units包时,带单位变量作颜色映射报错的解决方法
解决ggplot中带units变量的颜色映射报错问题
报错的核心原因是ggplot的颜色映射逻辑暂时不兼容units类对象,内部运算时会出现单位不匹配的问题,下面是几种可行的修复方案:
方案一:提取数值移除单位
在颜色映射中直接用as.numeric()提取z的数值部分,手动为图例添加单位标注:ggplot(dat) + geom_point(aes(x, y, col = as.numeric(z))) + labs(col = "z (米)")方案二:使用units包的drop_units函数
借助units提供的drop_units()函数更简洁地移除单位属性,效果和方案一一致:ggplot(dat) + geom_point(aes(x, y, col = drop_units(z))) + labs(col = "z (米)")方案三:保留单位图例显示
如果希望图例标签自动带上单位,可以通过scale_color_continuous的labels参数处理:ggplot(dat) + geom_point(aes(x, y, col = as.numeric(z))) + scale_color_continuous(labels = function(val) paste(val, "m"))
内容的提问来源于stack exchange,提问作者agila
相关产品推荐
相关产品推荐

