Как построить временной ряд в 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

Базовое построение временных рядов в R

Форматирование дат по оси 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 ") 

Построение временных рядов с настраиваемыми датами в R

Вы также можете добавить более частые (или редкие) перерывы по оси X, используя аргумент date_breaks . Например, мы могли бы отображать даты каждые две недели по оси X:

 p + scale_x_date ( date_breaks = " 2 week ") 

Временной ряд со скачками дат по оси X в R

Мы также можем легко исказить метки оси X, используя следующий аргумент:

 p + theme ( axis.text.x = element_text (angle= 50 , hjust= 1 )) 

Наклонить метки оси X в ggplot2

Наконец, мы можем изменить тему, метки осей и заголовок, чтобы сделать график временного ряда более визуально привлекательным:

 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 

Временной ряд с пользовательской темой ggplot в R

Дополнительные ресурсы

Полное руководство по лучшим темам ggplot2
Полное руководство по заголовкам ggplot2
Как создавать параллельные графики в ggplot2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *