Related Articles

# Create a stacked bar plot in Matplotlib

• Last Updated : 17 Dec, 2020

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

• Matplotlib is a tremendous visualization library in Python for 2D plots of arrays. Matplotlib may be a multi-platform data visualization library built on NumPy arrays and designed to figure with the broader SciPy stack.
• A bar plot or bar graph may be a graph that represents the category of knowledge with rectangular bars with lengths and heights that’s proportional to the values which they represent. The bar plots are often plotted horizontally or vertically.
• Stacked bar plots represent different groups on the highest of 1 another. The peak of the bar depends on the resulting height of the mixture of the results of the groups. It goes from rock bottom to the worth rather than going from zero to value.

Approach:

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

Example 1: (Simple stacked bar plot)

## Python3

 `# importing package``import` `matplotlib.pyplot as plt`` ` `# create data``x ``=` `[``'A'``, ``'B'``, ``'C'``, ``'D'``]``y1 ``=` `[``10``, ``20``, ``10``, ``30``]``y2 ``=` `[``20``, ``25``, ``15``, ``25``]`` ` `# plot bars in stack manner``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

 `# importing package``import` `matplotlib.pyplot as plt``import` `numpy as np`` ` `# create data``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``])`` ` `# plot bars in stack manner``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

 `# importing package``import` `matplotlib.pyplot as plt``import` `numpy as np``import` `pandas as pd`` ` `# create data``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'``])``# view data``print``(df)`` ` `# plot data in stack manner of bar type``df.plot(x``=``'Team'``, kind``=``'bar'``, stacked``=``True``,``        ``title``=``'Stacked Bar Graph by dataframe'``)`

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```

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up