Часто вам может понадобиться построить временной ряд в 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)
date sales
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: 2-значный год (например, «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