Implement an R function to generate a line graph depicting the trend of a time-series dataset , with separate lines for each graoup, utilizing ggplot2’s group aesthetic.
Step1: Load necessary libraries
library(ggplot2)
Warning: package 'ggplot2' was built under R version 4.4.3
library(dplyr)
Warning: package 'dplyr' was built under R version 4.4.3
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)
Warning: package 'tidyr' was built under R version 4.4.3
Step 2: Load the Built-in AirPassengers Dataset
#convert time series data to a dataframedata <-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)
plot_time_series <-function(data, x_col, y_col, group_col, title ="AirPassenger Trends") {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") +theme_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.