View Discussion Improve Article Save Article View Discussion Improve Article Save Article In this article, we will learn how to Create a stacked bar plot in
Matplotlib. Let’s discuss some concepts: Approach: 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