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 :

Steps Needed

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 :