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
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 ")
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 ")
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 ))
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
Dodatkowe zasoby
Kompletny przewodnik po najlepszych motywach ggplot2
Kompletny przewodnik po tytułach ggplot2
Jak tworzyć wykresy obok siebie w ggplot2