ggplot同Y轴绘制两个数据集时报Discrete value supplied to continuous scale错误
错误原因排查结果
- 核心触发原因是颜色参数的映射逻辑冲突:第一个图层通过
aes(color = Temperature)将颜色映射到连续数值型的温度变量,ggplot会自动生成连续型颜色比例尺。第二个图层你将color = "red"写在了aes()内部,此时ggplot不会将"red"识别为固定颜色值,而是会将其判定为一个离散分类常量,尝试往已有的连续颜色比例尺上映射,就会触发Discrete value supplied to continuous scale报错。 - 其余变量类型均符合要求,x轴的POSIXct格式、y轴的数值格式均不存在冲突。
修复方案
将第二个图层的固定颜色参数移出aes(),作为图层的全局参数即可:
gg <- ggplot() gg <- gg + geom_line(data = Mn, aes(x = Date_time, y = 1-Depth, color = Temperature), size = 0) # color参数移到aes外,作为固定样式不参与映射 gg <- gg + geom_line(data = MLDepth, aes(x = Date, y = 1-ML_Depth), color = "red") gg <- gg + theme(legend.title = element_blank(), legend.position = 'none') gg <- gg + xlab("Date") + ylab("Depth") gg
内容的提问来源于stack exchange,提问作者R student
相关产品推荐
相关产品推荐

