Функция ниже является точной символьно-точной копией функции, представленной на странице 26 второго издания книги Хэдли Уикхема ggplot2, с двумя исключениями:
- Выход назначен на p, который затем наносится на график.
- Выражение, следующее за "color =" в оригинале, было "year (date)".
Если вы берете год (date of economics $), вы получаете числовой c вектор с 1967 по 2015 год включительно по единицам. Я заменил это выражение на 1967: 2015. В результате возникает ошибка:
Error: Aesthetics must be either length 1 or the same as the data (574): colour
У меня два вопроса.
year <- function(x) as.POSIXlt(x)$year + 1900
p <- ggplot(economics, aes(unemploy / pop, uempmed)) +
geom_path(colour = "grey50") +
geom_point(aes(colour = 1967:2015))
plot(p)
- Почему это тривиальное изменение нарушает функцию?
- Почему сработала ли функция в первую очередь? (Оно делает). Потому что, если вы посмотрите на документацию для цветовой эстетики c, здесь: https://ggplot2.tidyverse.org/articles/ggplot2-specs.html это не говорит о том, что цветовой эстетик c принимает либо числовой вектор, либо функцию.