A API Matplotlib'spyplot tem uma função de conveniência chamada subplots () que atua como um wrapper de utilitário e ajuda na criação de layouts comuns de subplots, incluindo o objeto de figura envolvente, em uma única chamada.
Plt.subplots(nrows, ncols)
Os dois argumentos inteiros para esta função especificam o número de linhas e colunas da grade do subplot. A função retorna um objeto de figura e uma tupla contendo objetos de eixos iguais a nrows * ncols. Cada objeto de eixos é acessível por seu índice. Aqui, criamos um subplot de 2 linhas por 2 colunas e exibimos 4 gráficos diferentes em cada subplot.
import matplotlib.pyplot as plt
fig,a = plt.subplots(2,2)
import numpy as np
x = np.arange(1,5)
a[0][0].plot(x,x*x)
a[0][0].set_title('square')
a[0][1].plot(x,np.sqrt(x))
a[0][1].set_title('square root')
a[1][0].plot(x,np.exp(x))
a[1][0].set_title('exp')
a[1][1].plot(x,np.log10(x))
a[1][1].set_title('log')
plt.show()
A linha de código acima gera a seguinte saída -