Cómo crear diferentes tamaños de subtramas en Matplotlib
Podríamos usar gridspec_kw
, gridspec
y subplot2grid
para especificar diferentes proporciones de subtramas para crear subtramas de diferente tamaño.
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
del módulo GridSpec
especifica la geometría de la red de subtramas. Podríamos establecer el número de filas, columnas y parámetros de diseño como la relación de ancho y alto.
spec = gridspec.GridSpec(ncols=2, nrows=1, width_ratios=[2, 1])
Especifica que la figura tiene dos columnas y una fila y la relación de ancho es 2:1
.
ax0 = fig.add_subplot(spec[0])
El objeto ax0
toma el lugar de la posición 0
en la geometría como se definió anteriormente, o podrías usar spec[0, 0]
para hacerlo más 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
es el diccionario con palabras clave para que el constructor GridSpec
pueda especificar el tercio de las subtramas.
La relación de anchura se especifica como 2:1
, y la relación de altura se establece en 1:2
.
Método subplot2grid
subplot2grid
deja que las subtramas tomen múltiples células en la indexación de la grilla 0.
def subplot2grid(shape,
loc,
rowspan=1,
colspan=1,
fig=None,
**kwargs):
La shape
es la forma de la cuadrícula, y tiene la secuencia de 2 números enteros cuyo primer elemento es el número de filas y el segundo es el número de columnas.
loc
es la ubicación para colocar el axis
en la cuadrícula. También es la secuencia de 2 números enteros cuya primera entrada es el número de filas y el segundo elemento es el número de columnas.
La rowspan
y la colspan
son el número de filas o columnas para que el eje se extienda hacia la derecha (para la rowspan
) o hacia abajo (para la colspan
).
Ejemplo de codificación de trabajo:
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)
La cuadrícula tiene la forma de (1, 5)
que tiene una fila y cinco columnas.
El ax
se coloca en la celda (0, 0)
y toma 3 columnas, y el ax1
se coloca en la celda (0, 3)
y toma las otras dos columnas.
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