Plotar vários gráficos no Matplotlib
Python fornece uma biblioteca poderosa chamada Matplotlib que cria representações visuais na forma de plotagens e gráficos. Um dos muitos recursos desta biblioteca é a capacidade de traçar vários gráficos em uma única figura que são úteis ao comparar diferentes conjuntos de dados ou visualizar relacionamentos entre múltiplas variáveis. Vamos explorar o método integrado chamado 'subplots()' do Matplotlib que é usado para traçar vários gráficos.
Programa Python para traçar vários gráficos em Matplotlib
Antes de pular diretamente para o programa, vamos nos familiarizar com o método subplots() do Matplotlib.
Método subtramas()
Com uma única chamada do método 'subplots()', podemos criar uma ou mais subtramas dentro de uma única figura. Proporciona o controle adequado sobre as parcelas e também nos permite personalizar seu layout e aparência.
Sintaxe
subplots(numOfrows, numOfcols)
Aqui, 'numOfrows' e 'numOfcols' especificam o número de linhas e colunas respectivamente da grade.
No entanto, também podemos adicionar mais alguns atributos adicionais conforme a necessidade.
Exemplo 1
No exemplo a seguir, plotaremos duas subparcelas de funções seno e cosseno.
Abordagem
Primeiro, importaremos o matplotlib e o numpy. O matplotlib será utilizado para a representação visual dos dados gerados pelo numpy.
Gere uma matriz de 100 valores espaçados uniformemente entre 0 e 10 usando o método integrado 'linspace()' do NumPy. Em seguida, calcule os valores de seno e cosseno para cada elemento na matriz x e armazene-os em y1 e y2, respectivamente.
Agora, use o método 'subplots()' para criar duas subtramas organizadas verticalmente. Este método retornará um objeto de figura chamado 'fig' e uma tupla de eixos de subtrama 'ax1' e 'ax2'. Aqui, 'figsize' define o tamanho da figura.
Plote os valores de x em relação aos valores de y1 no primeiro subtrama ax1.
Da mesma forma, represente graficamente os valores de x em relação aos valores de y2 no segundo subtrama ax2.
Use o método 'tight_layout()' para ajustar o espaçamento entre as subparcelas para evitar sobreposição.
No final, exiba os gráficos e saia.
import matplotlib.pyplot as plt
import numpy as np
# generating some random data for plotting
val = np.linspace(0, 10, 100)
pl1 = np.sin(val)
pl2 = np.cos(val)
# Creating subplots
fig, (axs1, axs2) = plt.subplots(2, 1, figsize = (6, 4))
# Plotting of the first subplot
axs1.plot(val, pl1, 'r', label = 'Sin')
axs1.set_xlabel('Axis-X')
axs1.set_ylabel('Axis-Y')
axs1.legend()
# Plotting of the second subplot
axs2.plot(val, pl2, 'b', label = 'Cos')
axs2.set_xlabel('Axis-X')
axs2.set_ylabel('Axis-Y')
axs2.legend()
# for adjusting the space between subplots
plt.tight_layout()
# to display the plots
plt.show()
Saída
Exemplo 2
No exemplo a seguir, alteraremos o código do exemplo anterior para adicionar mais um gráfico de funções tan.
import matplotlib.pyplot as plt
import numpy as np
# generating some random data for plotting
val = np.linspace(0, 10, 100)
pl1 = np.sin(val)
pl2 = np.cos(val)
pl3 = np.tan(val)
# Creating the subplots using above data
fig, axs = plt.subplots(2, 2, figsize = (8, 6))
# Plotting of the first subplot
axs[0, 0].plot(val, pl1, 'r', label = 'Sin')
axs[0, 0].set_xlabel('Axis-X')
axs[0, 0].set_ylabel('Axis-Y')
axs[0, 0].legend()
# To plot on the second subplot
axs[0, 1].plot(val, pl2, 'b', label = 'Cos')
axs[0, 1].set_xlabel('Axis-X')
axs[0, 1].set_ylabel('Axis-Y')
axs[0, 1].legend()
# Plotting of the third subplot
axs[1, 0].plot(val, pl3, 'g', label = 'Tan')
axs[1, 0].set_xlabel('Axis-X')
axs[1, 0].set_ylabel('Axis-Y')
axs[1, 0].legend()
# To remove the empty subplot
fig.delaxes(axs[1, 1])
# for adjusting the space between subplots
plt.tight_layout()
# Displaying all plots
plt.show()
Saída
Conclusão
Começamos este artigo apresentando o Matplotlib e seu método integrado 'subplots()'. Na próxima seção, explicamos esse método em detalhes. Além disso, discutimos dois programas de exemplo para mostrar o uso do método 'subplots()' na plotagem de vários gráficos.