Cómo crear diferentes tamaños de subtramas en Matplotlib

  1. Método Gridspec
  2. Método gridspec_kw
  3. Método subplot2grid

Podríamos usar gridspec_kw, gridspec y subplot2grid para especificar diferentes proporciones de subtramas para crear subtramas de diferente tamaño.

Matplotlib Tamaño de subtrama diferente

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()

Matplotlib Different Subplot Size_gridspec_kw

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()

Matplotlib Different Subplot Size_subplot2grid.png

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.

Artículo relacionado - Matplotlib Subplot

  • Cómo añadir título a las subtramas en Matplotlib