Это работает точно так, как ожидалось:
p = qplot(year, temp, data=CETW, geom=c("point", "smooth"))
Температура строится в зависимости от года с учетом данных из кадра данных CETW. Серия сглажена. Чисто по эстетическим соображениям я хотел покрасить теплые, нормальные и холодные температуры. Существует атрибут CETW $ classify, значения которого «теплый», «нормальный» и «холодный». Ниже представлены данные в ожидаемых цветах:
p = qplot(year, temp, data=CETW, colour=classify, geom=c("point", "smooth"))
но теперь «гладкая» вещь решила быть умной и применила отдельные кривые сглаживания к каждой из трех температур. Это глупо, потому что слишком мало точек данных. Так как же сказать гладко сгладить всю серию температур, как это было в первом случае? Было бы неплохо увидеть ответ, который использует stat_smooth с method = loess.
По запросу я добавляю данные для CETW, используя dput:
structure(list(year = 1959:2011, temp = c(4.5, 5.08, 5.73, 3.43,
1.25, 3.7, 3.8, 4.95, 5.6, 4.2, 3.2, 3.4, 4.55, 5.33, 5.2, 5.5,
6.03, 5.13, 4.23, 4.75, 2.35, 4.63, 5.35, 3.45, 4.8, 4.35, 3.2,
3.4, 3.68, 5.55, 6.75, 6.75, 4.25, 5.33, 5.2, 5.43, 5.83, 3.4,
5.13, 6.55, 5.93, 5.95, 4.65, 5.93, 5.4, 5.48, 5.73, 4.33, 6.63,
5.75, 4.4, 3.35, 4.03), classify = c("normal", "normal", "normal",
"normal", "cold", "normal", "normal", "normal", "normal", "normal",
"cold", "cold", "normal", "normal", "normal", "normal", "warm",
"normal", "normal", "normal", "cold", "normal", "normal", "normal",
"normal", "normal", "cold", "cold", "normal", "normal", "warm",
"warm", "normal", "normal", "normal", "normal", "normal", "cold",
"normal", "warm", "normal", "normal", "normal", "normal", "normal",
"normal", "normal", "normal", "warm", "normal", "normal", "cold",
"normal")), .Names = c("year", "temp", "classify"), row.names = c(NA,
-53L), class = "data.frame")