Como criar diferentes tamanhos de subparcelas em Matplotlib
Poderíamos utilizar gridspec_kw
, gridspec
e subplot2grid
para especificar diferentes proporções de subquadrantes para criar subquadrantes de tamanhos diferentes.
Método gridspec
import matplotlib.pyplot as plt
from matplotlib import gridspec
fig = plt.figure()
spec = gridspec.GridSpec(ncols=2, nrows=1, width_ratios=[2, 1])
ax0 = fig.add_subplot(spec[0])
ax0.plot(range(5), range(5, 10))
ax1 = fig.add_subplot(spec[1])
ax1.plot(range(5), range(5, 10))
plt.show()
GridSpec
do módulo gridspec
especifica a geometria da grade de subquadros. Poderíamos definir o número de linhas, colunas e parâmetros de layout como a relação largura e altura.
spec = gridspec.GridSpec(ncols=2, nrows=1, width_ratios=[2, 1])
Ela especifica que a figura tem duas colunas e uma linha e a relação de largura é de 2:1
.
ax0 = fig.add_subplot(spec[0])
O objeto ax0
toma o lugar da posição 0
na geometria como definida acima, ou você poderia utilizar spec[0, 0]
para deixá-lo mais claro.
Método gridspec_kw
import matplotlib.pyplot as plt
fig, ax = plt.subplots(
2, 2, gridspec_kw={"width_ratios": [2, 1], "height_ratios": [1, 2]}
)
ax[0][0].plot(range(5), range(5, 10))
ax[0][1].plot(range(5), range(10, 5, -1))
ax[1][0].plot(range(5), range(5, 10))
ax[1][1].plot(range(5), range(10, 5, -1))
plt.show()
gridspec_kw
é o dicionário com palavras-chave para o construtor do GridSpec
para especificar a ave das subquadrantes.
A relação de largura é especificada como 2:1
, e a relação de altura é definida como 1:2
.
Método subplot2grid
subplot2grid
deixe subquadros tomarem múltiplas células na indexação da grade baseada em 0.
def subplot2grid(shape,
loc,
rowspan=1,
colspan=1,
fig=None,
**kwargs):
O shape
é a forma da grade, e tem a seqüência de 2 inteiros cujo primeiro elemento é o número de linhas e o segundo é o número de colunas.
O loc
é o local para colocar o axis
na grade. É também a seqüência de 2 inteiros cuja primeira entrada é o número de linhas e o segundo elemento é o número de colunas.
rowspan
e colspan
são o número de linhas ou colunas para o eixo se estender para a direita (para rowspan
) ou para o fundo (para colspan
).
Exemplo de codificação de trabalho:
import matplotlib.pyplot as plt
fig = plt.figure()
ax0 = plt.subplot2grid((1, 5), (0, 0), colspan=3)
ax1 = plt.subplot2grid((1, 5), (0, 3), colspan=2)
ax0.plot(range(5), range(5, 10))
ax1.plot(range(5), range(10, 5, -1))
plt.show()
ax0 = plt.subplot2grid((1, 5), (0, 0), colspan=3)
ax1 = plt.subplot2grid((1, 5), (0, 3), colspan=2)
A grade tem a forma de (1, 5)
que tem uma fila e cinco colunas.
O ax0
é colocado na célula (0, 0)
e leva 3 colunas, e o ax1
é colocado na célula (0, 3)
e leva as outras duas colunas.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook