How to Add Title to Subplots in Matplotlib? (original) (raw)
Last Updated : 26 Nov, 2022
In this article, we will see how to add a title to subplots in Matplotlib? Let’s discuss some concepts :
- Matplotlib : Matplotlib is an amazing visualization library in Python for 2D plots of arrays. Matplotlib is a multi-platform data visualization library built on NumPy arrays and designed to work with the broader SciPy stack. It was introduced by John Hunter in the year 2002.
- Subplots : The subplots() function in pyplot module of matplotlib library is used to create a figure and a set of subplots. Subplots are required when we want to show two or more plots in same figure.
- Title of a plot : The title() method in matplotlib module is used to specify title of the visualization depicted and displays the title using various attributes.
Steps Needed
- Import Libraries
- Create/ Load data
- Make subplot
- Plot subplot
- Set title to subplots.
Example 1: (Using set_title() method)
We use matplotlib.axes._axes.Axes.set_title(label) method to set title (string label) for the current subplot Axes.
Python3
import
numpy as np
import
matplotlib.pyplot as plt
x
=
np.array([
1
,
2
,
3
,
4
,
5
])
fig, ax
=
plt.subplots(
2
,
2
)
ax[
0
,
0
].plot(x, x)
ax[
0
,
1
].plot(x, x
*
2
)
ax[
1
,
0
].plot(x, x
*
x)
ax[
1
,
1
].plot(x, x
*
x
*
x)
ax[
0
,
0
].set_title(
"Linear"
)
ax[
0
,
1
].set_title(
"Double"
)
ax[
1
,
0
].set_title(
"Square"
)
ax[
1
,
1
].set_title(
"Cube"
)
fig.tight_layout()
plt.show()
Output:
Example 2: (Using title.set_text() method)
We can also add title to subplots in Matplotlib using title.set_text() method, in similar way to set_title() method.
Python3
import
numpy as np
import
matplotlib.pyplot as plt
x
=
np.array([
1
,
2
,
3
,
4
,
5
])
fig, ax
=
plt.subplots(
2
,
2
)
ax[
0
,
0
].plot(x, x)
ax[
0
,
1
].plot(x, x
*
2
)
ax[
1
,
0
].plot(x, x
*
x)
ax[
1
,
1
].plot(x, x
*
x
*
x)
ax[
0
,
0
].title.set_text(
"Linear"
)
ax[
0
,
1
].title.set_text(
"Double"
)
ax[
1
,
0
].title.set_text(
"Square"
)
ax[
1
,
1
].title.set_text(
"Cube"
)
fig.tight_layout()
plt.show()
Output:
Example 3: (Using plt.gca().set_title() method)
If you use Matlab-like style in the interactive plotting, then you could use plt.gca() to get the reference of the current axes of the subplot and combine set_title() method to set title to the subplots in Matplotlib.
Python3
import
numpy as np
import
matplotlib.pyplot as plt
x
=
np.array([
1
,
2
,
3
,
4
,
5
])
fig, ax
=
plt.subplots(
2
,
2
)
title
=
[
"Linear"
,
"Double"
,
"Square"
,
"Cube"
]
y
=
[x, x
*
2
, x
*
x, x
*
x
*
x]
for
i
in
range
(
4
):
`` plt.subplot(
2
,
2
, i
+
1
)
`` plt.plot(x, y[i])
`` plt.gca().set_title(title[i])
fig.tight_layout()
plt.show()
Output :
Example 4: (Using plt.gca().title.set_text() method)
If you use Matlab-like style in the interactive plotting, then you could use plt.gca() to get the reference of the current axes of the subplot and combine title.set_text() method to set title to the subplots in Matplotlib.
Python3
import
numpy as np
import
matplotlib.pyplot as plt
x
=
np.array([
1
,
2
,
3
,
4
,
5
])
fig, ax
=
plt.subplots(
2
,
2
)
title
=
[
"Linear"
,
"Double"
,
"Square"
,
"Cube"
]
y
=
[x, x
*
2
, x
*
x, x
*
x
*
x]
for
i
in
range
(
4
):
`` plt.subplot(
2
,
2
, i
+
1
)
`` plt.plot(x, y[i])
`` plt.gca().title.set_text(title[i])
fig.tight_layout()
plt.show()
Output :