Як побудувати часовий ряд у 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() *, щоб відформатувати дати, що відображаються вздовж осі х на графіку. Ця функція приймає такі аргументи:
- %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 . Наприклад, ми могли б відображати дати кожні два тижні вздовж осі х:
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