Implement an R function to generate a line graph depicting the trend of a time-series dataset, with separate lines for each group, utilizing ggplot2’s group aesthetic.
Introduction
This document demonstrates how to create a time-series line graph using
Step 1: Load necessary libraries
library(ggplot2)library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
library(tidyr)
#Convert timme-series data to a dataframeclass(AirPassengers)
[1] "ts"
Step 2: Load the Built-in AirPassengers Dataset
The AirPassengers dataset is a time series object in R.
We first convert it into a dataframe to use it with ggplot2.
Date:
data <-data.frame(Date =seq(as.Date("1949-01-01"),by ="month",length.out =length(AirPassengers)),Passengers =as.numeric(AirPassengers),Year =as.factor(format(seq(as.Date("1949-01-01"),by="month", length.out =length(AirPassengers)), "%Y")))#Display first few rowshead(data,n=20)
#Function to plot time-series trendplot_time_series <-function(data, x_col, y_col, group_col, title="Air Passenger Trendds"){ggplot(data, aes_string(x= x_col, y= y_col, color=group_col, group= group_col))+geom_line(size =1.2)+#Line graphgeom_point(size=2)+#Add points for claritylabs(title = title,x="Year",y="Number of Passengers",color ="Year")+#Legend titletheme_minimal()+theme(legend.position ="top")}#Call the functionplot_time_series(data, "Date", "Passengers", "Year", "Trend of Airline Passengers Over Time")
Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
ℹ Please use tidy evaluation idioms with `aes()`.
ℹ See also `vignette("ggplot2-in-packages")` for more information.
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.