Como melhorar o tamanho ou espaçamento de subpotes com muitos subpotes em Matplotlib
- Método para alterar o tamanho e espaçamento de subpiso Matplotlib
-
plt.subplots_adjust()
Método -
plt.subplot_tool()
Método -
Ativar
constrained_layout=True
em função de subquadros

Poderíamos utilizar métodos tight_layout()
, subplots_adjust()
e subplot_tool()
para melhorar o tamanho do subplot ou espaçamento com muitos subquadrantes em Matplotlib. Também podemos melhorar o espaçamento entre subparcelas definindo constrained_layout=True
in subplots()
function.
Método para alterar o tamanho e espaçamento de subpiso Matplotlib
O método tight_layout()
mantém automaticamente o espaçamento correto entre subquadrantes.
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-3,3,100)
y1=np.sin(x)
y2=np.cos(x)
y3=1/(1+np.exp(-x))
y4=np.exp(x)
fig, ax = plt.subplots(2, 2)
ax[0, 0].plot(x, y1)
ax[0, 1].plot(x, y2)
ax[1, 0].plot(x, y3)
ax[1, 1].plot(x,y4)
ax[0, 0].set_title("Sine function")
ax[0, 1].set_title("Cosine function")
ax[1, 0].set_title("Sigmoid function")
ax[1, 1].set_title("Exponential function")
fig.tight_layout()
plt.show()
Se não utilizarmos o método tight_layout()
, uma linha irá se sobrepor ao título da próxima.
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-3,3,100)
y1=np.sin(x)
y2=np.cos(x)
y3=1/(1+np.exp(-x))
y4=np.exp(x)
fig, ax = plt.subplots(2, 2)
ax[0, 0].plot(x, y1)
ax[0, 1].plot(x, y2)
ax[1, 0].plot(x, y3)
ax[1, 1].plot(x,y4)
ax[0, 0].set_title("Sine function")
ax[0, 1].set_title("Cosine function")
ax[1, 0].set_title("Sigmoid function")
ax[1, 1].set_title("Exponential function")
plt.show()
plt.subplots_adjust()
Método
Podemos utilizar o método plt.subplots_adjust()
para alterar o espaçamento entre os subplots.
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-3,3,100)
y1=np.sin(x)
y2=np.cos(x)
y3=1/(1+np.exp(-x))
y4=np.exp(x)
fig, ax = plt.subplots(2, 2)
ax[0, 0].plot(x, y1)
ax[0, 1].plot(x, y2)
ax[1, 0].plot(x, y3)
ax[1, 1].plot(x,y4)
ax[0, 0].set_title("Sine function")
ax[0, 1].set_title("Cosine function")
ax[1, 0].set_title("Sigmoid function")
ax[1, 1].set_title("Exponential function")
plt.subplots_adjust(left=0.125,
bottom=0.1,
right=0.9,
top=0.9,
wspace=0.2,
hspace=0.35)
plt.show()
plt.subplots_adjust(left=0.125,
bottom=0.1,
right=0.9,
top=0.9,
wspace=0.2,
hspace=0.35)
O wspace
e o hspace
especificam o espaço reservado entre os subplot. São as frações de largura e altura do eixo, respectivamente.
Os parâmetros left
, right
, top
e bottom
especificam as posições de quatro lados dos subplotamentos. Elas são as frações da largura e da altura da figura.
plt.subplot_tool()
Método
Este método lança uma janela de ferramentas de subplot para uma figura.
import numpy as np
import matplotlib.pyplot as plt
im1=np.random.random((50,50))
im2=np.random.random((40,50))
im3=np.random.random((50,40))
im4=np.random.random((60,50))
plt.subplot(221)
plt.imshow(im1)
plt.subplot(222)
plt.imshow(im2)
plt.subplot(223)
plt.imshow(im3)
plt.subplot(224)
plt.imshow(im4)
plt.subplot_tool()
plt.show()
Ele fornece um método interativo para o usuário arrastar a barra no subplot_tool
para alterar o layout das subquadrantes.
Ativar constrained_layout=True
em função de subquadros
constrained_layout
ajusta subquadrantes e decorações automaticamente para encaixá-los na figura, da melhor forma possível.
O constrained_layout
deve ser ativado antes ou durante a criação do subplot, pois otimiza o layout antes de cada etapa do desenho.
import numpy as np
import matplotlib.pyplot as plt
a=np.linspace(0,5,100)
figure, axes = plt.subplots(2,2, constrained_layout=True)
axes[0, 0].plot(x, np.exp(a))
axes[0, 1].plot(a, np.sin(a))
axes[1, 0].plot(a, np.cos(a))
axes[1, 1].plot(range(10))
axes[0, 0].set_title("subplot 1")
axes[0, 1].set_title("subplot 2")
axes[1, 0].set_title("subplot 3")
axes[1, 1].set_title("subplot 4")
plt.show()
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtigo relacionado - Matplotlib Subplot
- Como criar diferentes tamanhos de subparcelas em Matplotlib
- Como adicionar título a subquadrantes em Matplotlib
- Adicionar Subplot a uma figura em Matplotlib