Рассмотрят следующие данные:Создать за год участок с месяцем осью х через scale_x_date() с ggplot2
library(ggplot2)
library(lubridate)
date <- seq.Date(ymd("2015-01-01"), Sys.Date(), by = "day")
df <- data.frame(date = date,
value = seq_along(date) + rnorm(length(date), sd = 100))
# Add yday and year
df$yday <- yday(df$date)
df$year <- year(df$date)
head(df)
# date value yday year
# 1 2015-01-01 97 1 2015
# 2 2015-01-02 89 2 2015
# 3 2015-01-03 68 3 2015
# 4 2015-01-04 57 4 2015
# 5 2015-01-05 70 5 2015
# 6 2015-01-06 100 6 2016
Я хотел бы сделать «за год» участок с цветом присвоен год , Я могу сделать это с помощью следующих действий:
ggplot(df, aes(x = yday, y = value, color = factor(year))) +
geom_line()
Но это приводит к оси х будучи «день года», а не месяц этикеток. Добавление + scale_x_date()
не работает, потому что yday
больше не является датой.
Is можно использовать scale_x_date()
?
В конце концов, я хотел бы сделать что-то вроде этого:
ggplot(df, aes(x = date, y = value, color = factor(year))) +
geom_line() +
scale_x_date(date_labels = "%b")
Но держать годы «сложенных» на том же участке.
Я понимаю, что вы не хотите использовать обходные данное в ответ на ваш [предыдущий вопрос] (http://stackoverflow.com/questions/28503262/using-lubridate-and -ggplot2 эффективно-к-дата-оси)? Возможно, уточните, что в этом и есть, в противном случае это похоже на дубликат. – aosmith