R: ggplot2: проблема ссылочной прозрачности - PullRequest
0 голосов
/ 28 января 2020

Функция ниже является точной символьно-точной копией функции, представленной на странице 26 второго издания книги Хэдли Уикхема ggplot2, с двумя исключениями:

  1. Выход назначен на p, который затем наносится на график.
  2. Выражение, следующее за "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)
  1. Почему это тривиальное изменение нарушает функцию?
  2. Почему сработала ли функция в первую очередь? (Оно делает). Потому что, если вы посмотрите на документацию для цветовой эстетики c, здесь: https://ggplot2.tidyverse.org/articles/ggplot2-specs.html это не говорит о том, что цветовой эстетик c принимает либо числовой вектор, либо функцию.
...