Open In App

Multiple Density Plots with Pandas in Python

Last Updated : 03 Jan, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

Multiple density plots are a great way of comparing the distribution of multiple groups in your data.  We can make multiple density plots using pandas plot.density() function. However, we need to convert data in a wide format if we are using the density function. Wide data represents different groups in different columns. We convert data in a wide format using Pandas pivot() function.

Let’s create the simple data-frame and then reshape it into a wide-format:

Example 1:

Here we are using this data set.

Step 1: Creating dataframe from data set.

Python3




import pandas as pd
  
# creating a dataframe
df = pd.read_csv(r"gapminder1.csv")
df.head()


Output: 

dataset

Step 2: Let’s group data according to countries in different columns so that we can apply the density() function to plot multiple density plots.

Python3




# converting data into wide-format
data_wide = df.pivot(columns='continent',
                     values='lifeExp')
data_wide.head()


Output: 

Step 3: Now let’s plot multiple density plot using plot.density()

Python3




import matplotlib.pyplot as plt
  
# calling density() to make
# multiple density plot 
data_wide.plot.density(figsize = (7, 7),
                       linewidth = 4)
  
plt.xlabel("life_Exp")


Output :

Multiple density plots

Example 2: We can also call plot.kde() function on dataframe to make multiple density plots with Pandas.

Here we are using the tips dataset for this example, You can find it here.

Step 1: Creating dataframe from data set.

Python3




import pandas as pd
  
# creating a dataframe
df = pd.read_csv(r"tips.csv")
df.head()


Output:

tips_df

Step 2: Now apply pivot() function to have dataframe in the wide-format then apply kde() to have multiple density plot. 

Python3




# Converting to wide dataframe
data_wide = df.pivot(columns = 'day',
                     values = 'total_bill')
  
# plotting multiple density plot
data_wide.plot.kde(figsize = (8, 6),
                   linewidth = 4)


Output:

tips multiple D.P



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads