Как построить временной ряд в r (с примерами)
Часто вам может потребоваться построить временной ряд в R, чтобы визуализировать, как значения во временном ряду изменяются со временем.
В этом руководстве объясняется, как это сделать быстро, используя библиотеку визуализации данных ggplot2 .
Базовое построение временных рядов в R
Предположим, у нас есть следующий набор данных в R:
#create dataset df <- data.frame(date = as . Date (" 2021-01-01 ") - 0:99, sales = runif (100, 10, 500) + seq (50, 149)^2) #view first six rows head(df) dirty date 1 2021-01-01 2845.506 2 2020-12-31 2837.849 3 2020-12-30 3115.517 4 2020-12-29 2847.161 5 2020-12-28 3374.619 6 2020-12-27 3182.005
Мы можем использовать следующий код, чтобы создать базовый график временных рядов для этого набора данных с помощью ggplot2:
library (ggplot2) #create time series plot p <- ggplot(df, aes (x=date, y=sales)) + geom_line() #display time series plot p
Форматирование дат по оси X
Мы можем использовать функцию Scale_x_date() * для форматирования дат, отображаемых вдоль оси X графика. Эта функция принимает следующие аргументы:
- %d: день в виде числа от 0 до 31.
- %a: сокращенный день недели (например, «Вторник»)
- %A: день недели без сокращений (например, «вторник»)
- %m : Месяцы от 0 до 12.
- %b: сокращенный месяц (например, «январь»)
- %B: месяц без сокращений (например, «январь»)
- %y: год из двух цифр (например, «21»)
- %Y: 4-значный год (например, «2021»)
- %W: неделя года от 0 до 52.
* Чтобы эта функция работала, переменная оси X должна быть переменной даты. Если это еще не так, вы можете быстро преобразовать его в другой, используя as.Date( variable_name) .
Следующий код показывает, как использовать один из этих форматов на практике:
p + scale_x_date ( date_labels = " %b %Y ")
Вы также можете добавить более частые (или редкие) перерывы по оси X, используя аргумент date_breaks . Например, мы могли бы отображать даты каждые две недели по оси X:
p + scale_x_date ( date_breaks = " 2 week ")
Мы также можем легко исказить метки оси X, используя следующий аргумент:
p + theme ( axis.text.x = element_text (angle= 50 , hjust= 1 ))
Наконец, мы можем изменить тему, метки осей и заголовок, чтобы сделать график временного ряда более визуально привлекательным:
p <- ggplot(df, aes (x=date, y=sales)) + geom_line( color =" turquoise4 ") + theme_minimal() + labs(x="", y=" Sales ", title=" Total Sales (Past 100 Days) ") + theme( plot.title = element_text (hjust=0.5, size=20, face=" bold ")) p
Дополнительные ресурсы
Полное руководство по лучшим темам ggplot2
Полное руководство по заголовкам ggplot2
Как создавать параллельные графики в ggplot2