Open In App

Creating A Time Series Plot With Seaborn And Pandas

Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will learn how to create A Time Series Plot With Seaborn And Pandas. Let’s discuss some concepts :

  • Pandas is an open-source library that’s built on top of NumPy library. It’s a Python package that gives various data structures and operations for manipulating numerical data and statistics. It’s mainly popular for importing and analyzing data much easier. Pandas is fast and it’s high-performance & productive for users.
  • Seaborn is a tremendous visualization library for statistical graphics plotting in Python. It provides beautiful default styles and color palettes to form statistical plots more attractive. It’s built on the highest of matplotlib library and also closely integrated to the info structures from pandas.
  • A timeplot (sometimes called a statistic graph) displays values against the clock. They’re almost like x-y graphs, but while an x-y graph can plot a spread of “x” variables (for example, height, weight, age), timeplots can only display time on the x-axis. Unlike the pie charts and bar charts, these plots don’t have categories. Timeplots are good for showing how data changes over time. For instance, this sort of chart would work well if you were sampling data randomly times.

Steps Needed

  1. Import packages
  2. Import / Load / Create data.
  3. Plot the time series plot over data using lineplot (as tsplot was replaced with lineplot since Sep 2020).

Examples

Here, we create a rough data for understanding the time series plot with the help of some examples. Let’s create the data :

Python3




# importing packages
import pandas as pd
  
# creating data
df = pd.DataFrame({'Date': ['2019-10-01', '2019-11-01'
                            '2019-12-01','2020-01-01'
                            '2020-02-01', '2020-03-01',
                            '2020-04-01', '2020-05-01',
                            '2020-06-01'],
                     
                   'Col_1': [34, 43, 14, 15,
                             15, 14, 31, 25, 62],
                     
                   'Col_2': [52, 66, 78, 15, 15,
                             5, 25, 25, 86],
                     
                   'Col_3': [13, 73, 82, 58, 52,
                             87, 26, 5, 56],
                     
                   'Col_4': [44, 75, 26, 15, 15,
                             14, 54, 25, 24]})
  
# view dataset
display(df)


Output:

Example 1: Simple time series plot with single column using lineplot

Python3




# importing packages
import seaborn as sns
import pandas as pd
  
# creating data
df = pd.DataFrame({'Date': ['2019-10-01', '2019-11-01'
                            '2019-12-01','2020-01-01'
                            '2020-02-01', '2020-03-01',
                            '2020-04-01', '2020-05-01'
                            '2020-06-01'],
                     
                   'Col_1': [34, 43, 14, 15, 15,
                             14, 31, 25, 62],
                     
                   'Col_2': [52, 66, 78, 15, 15,
                             5, 25, 25, 86],
                     
                   'Col_3': [13, 73, 82, 58, 52,
                             87, 26, 5, 56],
                   'Col_4': [44, 75, 26, 15, 15,
                             14, 54, 25, 24]})
  
# create the time series plot
sns.lineplot(x = "Date", y = "Col_1",
             data = df)
  
plt.xticks(rotation = 25)


Output :

Example 2: (Simple time series plot with multiple columns  using line plot)

Python3




# importing packages
import seaborn as sns
import pandas as pd
  
# creating data
df = pd.DataFrame({'Date': ['2019-10-01', '2019-11-01'
                            '2019-12-01','2020-01-01'
                            '2020-02-01', '2020-03-01',
                            '2020-04-01', '2020-05-01'
                            '2020-06-01'],
                     
                   'Col_1': [34, 43, 14, 15, 15,
                             14, 31, 25, 62],
                     
                   'Col_2': [52, 66, 78, 15, 15,
                             5, 25, 25, 86],
                     
                   'Col_3': [13, 73, 82, 58, 52,
                             87, 26, 5, 56],
                   'Col_4': [44, 75, 26, 15, 15,
                             14, 54, 25, 24]})
  
# create the time series plot
sns.lineplot(x = "Date", y = "Col_1", data = df)
sns.lineplot(x = "Date", y = "Col_2", data = df)
plt.ylabel("Col_1 and Col_2")
plt.xticks(rotation = 25)


Output :

Example 3: Multiple time series plot with multiple columns

Python3




# importing packages
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
  
# creating data
df = pd.DataFrame({'Date': ['2019-10-01', '2019-11-01'
                            '2019-12-01','2020-01-01'
                            '2020-02-01', '2020-03-01',
                            '2020-04-01', '2020-05-01'
                            '2020-06-01'],
                     
                   'Col_1': [34, 43, 14, 15, 15,
                             14, 31, 25, 62],
                     
                   'Col_2': [52, 66, 78, 15, 15,
                             5, 25, 25, 86],
                     
                   'Col_3': [13, 73, 82, 58, 52,
                             87, 26, 5, 56],
                   'Col_4': [44, 75, 26, 15, 15,
                             14, 54, 25, 24]})
# create the time series subplots
fig,ax =  plt.subplots( 2, 2,
                       figsize = ( 10, 8))
  
sns.lineplot( x = "Date", y = "Col_1"
             color = 'r', data = df, 
             ax = ax[0][0])
  
ax[0][0].tick_params(labelrotation = 25)
sns.lineplot( x = "Date", y = "Col_2"
             color = 'g', data = df,
             ax = ax[0][1])
  
ax[0][1].tick_params(labelrotation = 25)
sns.lineplot(x = "Date", y = "Col_3"
             color = 'b', data = df,
             ax = ax[1][0])
  
ax[1][0].tick_params(labelrotation = 25)
  
sns.lineplot(x = "Date", y = "Col_4"
             color = 'y', data = df, 
             ax = ax[1][1])
  
ax[1][1].tick_params(labelrotation = 25)
fig.tight_layout(pad = 1.2)


Output :



Last Updated : 11 Dec, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads