Draw Multiple Time Series in Same Plot in R
Time Series in R programming language is used to see how an object behaves over a period of time. In R, it can be easily done by the ts() function with some parameters. Time series takes the data vector and each data is connected with timestamp value as given by the user.
Method 1: Using Basic R methods
First, we create a data vector that has data for all the time series that have to be drawn. Then we plot the time series using the first dataset and plot() function. Then add other time series using line() function to the existing plot. Then we may add a legend on top to show which line in the plot represents which time series.
Example:
R
set.seed (1023)
sample_data <- round ( data.frame (year = 1997:2021,
time_data1 = 1:25 + rnorm (25),
time_data2 = 30:6 + runif (25, 0, 10),
time_data3 = rnorm (25, 5, 5)))
plot (sample_data$year,
sample_data$time_data1,
type = "l" ,
col = 2,
ylim = c (- 15, 40),
xlab = "Year" ,
ylab = "Values" )
lines (sample_data$year,
sample_data$time_data2,
type = "l" ,
col = 3)
lines (sample_data$year,
sample_data$time_data3,
type = "l" ,
col = 4)
legend ( "topright" ,
c ( "Geeksforgeeks" , "technical-scripter" , "geek-i-knack" ),
lty = 1,
col = 2:4)
|
Output:
Multiple time series in one plot
Method 2: Using ggplot2
In ggplot2 we can directly use geom_line() to draw the plot.
We first create a sample data vector. The ggplot2 will be used to draw the plot and reshape will melt the data from the wide form to long-form. Convert data from the wide form to long-form.
Syntax:
melt(sample_data, id.vars = variable)
Draw the plot with the help of ggplot2 and geom_line(),
Example:
R
set.seed (1023)
sample_data <- round ( data.frame (year = 1997:2021,
time_data1 = 1:25 + rnorm (25),
time_data2 = 30:6 + runif (25, 0, 10),
time_data3 = rnorm (25, 5, 5)))
library ( "reshape2" )
library ( "ggplot2" )
data_final <- melt (sample_data, id.vars = "year" )
ggplot (data_final,
aes (x = year,
y = value,
col = variable)) + geom_line ()
|
Output:
Multiple time series using ggplot2
Last Updated :
26 May, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...