我正在尝试用 3geom_line
秒创建一个简单的 ggplot 来显示正常、5 年和 10 年的移动平均线。我的数据框是temp
列AverageTemperature
。但是我无法理解以下错误:
Error: Columns 'y', 'colour' must be 1d atomic vectors or lists
,
Error: 'mapping' must be created by 'aes()'
我没有名为 y 或 color 的列以及我的所有映射。其他答案似乎无法解释错误背后的原因。我的代码如下:
library(ggplot2)
library(forecast)
ma <- ma(temp$AverageTemperature, order = 5)
ma2 <- ma(temp$AverageTemperature, order = 10)
ggplot(temp, x= dt) +
geom_line(temp, aes(y = AverageTemperature, size = 1.5)) + scale_y_log10() + xlim(1870, 2000) +
geom_line(temp, aes(y = ma, color = ma, size = 1.5)) +
geom_line(temp, aes(y = ma2, color = ma, size = 1.5)) `
我需要的结果如下图所示:
样本数据使用dput
:
structure(list(dt = c(1743L, 1744L, 1745L, 1750L, 1751L, 1752L ), AverageTemperatureUncertainty = c(3.1304125, 3.0976671875, 3.00175, 3.13747272727273, 3.09229285714285, 3.06561458333333 )), row.names = c(NA, 6L), class = "data.frame")
有人可以解释一下错误是什么吗?
非常感谢。