Pandas DataFrame Plot - Line Chart

This article provides examples about plotting line chart using pandas.DataFrame.plot function.

Prerequisites

The data I'm going to use is the same as the other article Pandas DataFrame Plot - Bar Chart. I'm also using Jupyter Notebook to plot them.

The DataFrame has 9 records:

DATETYPESALES
02020-01-01TypeA1000
12020-01-01TypeB200
22020-01-01TypeC300
32020-02-01TypeA700
42020-02-01TypeB400
52020-02-01TypeC500
62020-03-01TypeA300
72020-03-01TypeB900
82020-03-01TypeC100


Line chart plot

df.groupby(['DATE','TYPE']).sum().unstack().plot(kind='line',y='SALES')

The output of the plotting:

Change marker

The following code snippet changes marker to circle. Refer to matplotlib documentation about all the options you could choose. 

df.groupby(['DATE','TYPE']).sum().unstack().plot(kind='line',y='SALES', marker='o')

Cumulative line chart

Similar as the bar chart plotting, we can also plot a cumulative line chart.

df.groupby(['DATE','TYPE']).sum().groupby(level=[1]).cumsum().unstack().plot(kind='line',y='SALES', stacked = True)

X-axis labels

In the above charts, X-axis labels are very crowded. There are multiple ways to fix it. One of the approaches is to use formatter and also set major locator. 

The code snippet looks like the following

import matplotlib
import matplotlib.dates as mdates
from matplotlib.dates import DateFormatter

df_unstack = df.groupby(['DATE','TYPE']).sum().groupby(level=[1]).cumsum().unstack()
plt =df_unstack.plot(kind='line',y='SALES', marker='o', stacked = True)

date_form = DateFormatter("%Y-%m")
plt.xaxis.set_major_formatter(date_form)
plt.xaxis.set_major_locator(mdates.MonthLocator(interval=1))

Chart looks like this:

Similarly for the non-cumulative one, you can also set up the major locator:

import matplotlib
import matplotlib.dates as mdates
from matplotlib.dates import DateFormatter

df_unstack = df.groupby(['DATE','TYPE']).sum().unstack()
plt =df_unstack.plot(kind='line',y='SALES', marker='o', stacked = True)

date_form = DateFormatter("%Y-%m")
plt.xaxis.set_major_formatter(date_form)
plt.xaxis.set_major_locator(mdates.MonthLocator(interval=1))

Output looks like the following screenshot:


info Last modified by Raymond at 5 months ago copyright This page is subject to Site terms.

More from Kontext

local_offer teradata local_offer python

visibility 1070
thumb_up 1
access_time 4 months ago

Pandas is commonly used by Python users to perform data operations. In many scenarios, the results need to be saved to a storage like Teradata. This article shows you how to do that easily using JayDeBeApi or  ...

open_in_new Spark

local_offer python

visibility 340
thumb_up 0
access_time 4 months ago

CSV is a common data format used in many applications. It's also a common task for data workers to read and parse CSV and then save it into another storage such as RDBMS (Teradata, SQL Server, MySQL). In my previous article  ...

open_in_new Python Programming

local_offer teradata local_offer python local_offer Java

visibility 600
thumb_up 0
access_time 4 months ago

Python JayDeBeApi module allows you to connect from Python to Teradata databases using Java JDBC drivers. In article Connect to Teradata database through Python , I showed ho...

open_in_new Python Programming

local_offer pandas local_offer sqlite

visibility 346
thumb_up 0
access_time 4 months ago

In my previous posts, I showed how to use  jaydebeapi or sqlite3 pack...

open_in_new Python Programming

comment Comments (0)

comment Add comment

Please log in or register to comment.

account_circle Log in person_add Register

Log in with external accounts

No comments yet.

Kontext Column

Created for everyone to publish data, programming and cloud related articles. Follow three steps to create your columns.


Learn more arrow_forward