Jak wykreślić szereg czasowy w r (z przykładami)


Często możesz chcieć wykreślić szereg czasowy w R, aby zwizualizować, jak wartości w szeregu czasowym zmieniają się w czasie.

W tym samouczku wyjaśniono, jak to zrobić szybko, korzystając z biblioteki wizualizacji danych ggplot2 .

Podstawowe kreślenie szeregów czasowych w R

Załóżmy, że mamy następujący zbiór danych w 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

Możemy użyć następującego kodu, aby utworzyć podstawowy wykres szeregów czasowych dla tego zbioru danych za pomocą ggplot2:

 library (ggplot2)

#create time series plot
p <- ggplot(df, aes (x=date, y=sales)) +
       geom_line()

#display time series plot
p

Podstawowe kreślenie szeregów czasowych w R

Formatuj daty na osi X

Możemy użyć funkcjiscale_x_date () * do sformatowania dat wyświetlanych wzdłuż osi x wykresu. Funkcja ta przyjmuje następujące argumenty:

  • %d: dzień jako liczba z zakresu od 0 do 31
  • %a: skrócony dzień tygodnia (na przykład „wtorek”)
  • %A: pełny dzień tygodnia (na przykład „wtorek”)
  • %m : miesiące od 0 do 12
  • %b: skrócony miesiąc (na przykład „styczeń”)
  • %B: pełny miesiąc (na przykład „styczeń”)
  • %y: 2-cyfrowy rok (na przykład „21”)
  • %Y: 4-cyfrowy rok (na przykład „2021”)
  • %W: Tydzień roku od 0 do 52

* Aby ta funkcja działała, zmienna osi x musi być zmienną daty. Jeśli jeszcze nie jest, możesz szybko przekonwertować go na taki, używając as.Date( nazwa_zmiennej) .

Poniższy kod pokazuje, jak w praktyce wykorzystać jeden z tych formatów:

 p + scale_x_date ( date_labels = " %b %Y ") 

Wykreślanie szeregów czasowych z niestandardowymi datami w R

Możesz także dodać częstsze (lub rzadsze) przerwy wzdłuż osi x, używając argumentu date_breaks . Na przykład moglibyśmy wyświetlać daty co dwa tygodnie wzdłuż osi x:

 p + scale_x_date ( date_breaks = " 2 week ") 

Szereg czasowy ze skokami dat na osi x w R

Możemy również łatwo pochylić etykiety osi X, używając następującego argumentu:

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

Przechyl etykiety osi X w ggplot2

Na koniec możemy zmienić motyw, etykiety osi i tytuł, aby wykres szeregów czasowych był bardziej atrakcyjny wizualnie:

 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 

Szeregi czasowe z niestandardowym motywem ggplot w R

Dodatkowe zasoby

Kompletny przewodnik po najlepszych motywach ggplot2
Kompletny przewodnik po tytułach ggplot2
Jak tworzyć wykresy obok siebie w ggplot2

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *