Creating A Time Series Plot With Seaborn And Pandas - GeeksforGeeks

11 Dec, 2020
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.
Import packagesImport / Load / Create data.Plot the time series plot over data using lineplot (as tsplot was replaced with lineplot since Sep 2020).
Import packages
Import / Load / Create data.
Plot the time series plot over data using lineplot (as tsplot was replaced with lineplot since Sep 2020).
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 packagesimport pandas as pd  # creating datadf = 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 datasetdisplay(df)
Output:
Example 1: Simple time series plot with single column using lineplot
Python3
# importing packagesimport seaborn as snsimport pandas as pd  # creating datadf = 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 plotsns.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 packagesimport seaborn as snsimport pandas as pd  # creating datadf = 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 plotsns.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 packagesimport seaborn as snsimport pandas as pdimport matplotlib.pyplot as plt  # creating datadf = 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 subplotsfig,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 :
Python-pandas
Python-Seaborn
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Read JSON file using Python
Adding new column to existing DataFrame in Pandas
Python map() function
How to get column names in Pandas dataframe
Python Dictionary
Taking input in Python
Read a file line by line in Python
Enumerate() in Python
How to Install PIP on Windows ?
Iterate over a list in Python