Create a stacked bar plot in Matplotlib (original) (raw)

Last Updated : 24 Aug, 2022

In this article, we will learn how to Create a stacked bar plot in Matplotlib. Let’s discuss some concepts:

Approach:

  1. Import Library (Matplotlib)
  2. Import / create data.
  3. Plot the bars in the stack manner.

Example 1: (Simple stacked bar plot)

Python3

import matplotlib.pyplot as plt

x = [ 'A' , 'B' , 'C' , 'D' ]

y1 = [ 10 , 20 , 10 , 30 ]

y2 = [ 20 , 25 , 15 , 25 ]

plt.bar(x, y1, color = 'r' )

plt.bar(x, y2, bottom = y1, color = 'b' )

plt.show()

Output :

Example 2: (Stacked bar chart with more than 2 data)

Python3

import matplotlib.pyplot as plt

import numpy as np

x = [ 'A' , 'B' , 'C' , 'D' ]

y1 = np.array([ 10 , 20 , 10 , 30 ])

y2 = np.array([ 20 , 25 , 15 , 25 ])

y3 = np.array([ 12 , 15 , 19 , 6 ])

y4 = np.array([ 10 , 29 , 13 , 19 ])

plt.bar(x, y1, color = 'r' )

plt.bar(x, y2, bottom = y1, color = 'b' )

plt.bar(x, y3, bottom = y1 + y2, color = 'y' )

plt.bar(x, y4, bottom = y1 + y2 + y3, color = 'g' )

plt.xlabel( "Teams" )

plt.ylabel( "Score" )

plt.legend([ "Round 1" , "Round 2" , "Round 3" , "Round 4" ])

plt.title( "Scores by Teams in 4 Rounds" )

plt.show()

Output :

Example 3: (Stacked Bar chart using dataframe plot)

Python3

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

df = pd.DataFrame([[ 'A' , 10 , 20 , 10 , 26 ], [ 'B' , 20 , 25 , 15 , 21 ], [ 'C' , 12 , 15 , 19 , 6 ],

`` [ 'D' , 10 , 18 , 11 , 19 ]],

`` columns = [ 'Team' , 'Round 1' , 'Round 2' , 'Round 3' , 'Round 4' ])

print (df)

df.plot(x = 'Team' , kind = 'bar' , stacked = True ,

`` title = 'Stacked Bar Graph by dataframe' )

plt.show()

Output :

Team Round 1 Round 2 Round 3 Round 4 0 A 10 20 10 26 1 B 20 25 15 21 2 C 12 15 19 6 3 D 10 18 11 19

Similar Reads

Introduction







Multiple Plots







Working with Legends












Line Chart







Bar Plot









Histogram






Scatter Plot






Pie Chart




3D Plots










Working with Images