Agregar subplot a una figura en Matplotlib

Suraj Joshi 30 enero 2023
  1. Agregar subplot a una figura usando el método matplotlib.pyplot.figure.add_subplot()
  2. Crear una figura con subplots usando Matplotlib.pyplot.subplots()
Agregar subplot a una figura en Matplotlib

Este tutorial explica cómo podemos agregar subplots a una figura Matplotlib utilizando el método matplotlib.pyplot.figure.add_subplot() en Python.

Agregar subplot a una figura usando el método matplotlib.pyplot.figure.add_subplot()

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(5, 5))

x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 1, 2]

subplot = fig.add_subplot(1, 1, 1)
subplot.plot(x, y)

fig.suptitle("Figure with only one Subplot")
plt.show()

Resultado:

Agregar una subplot a la figura matplotlib

Genera una figura con una sola subplot. La figura puede interpretarse como un elemento de alto nivel que contiene todas las subplots y otros elementos de la figura. Primero inicializamos la figura objeto de tamaño (5,5) y luego agregamos una subplot a la figura usando el método add_subplot(). El primer argumento del método add_subplot() representa el número de filas de la subplot en la figura, el segundo argumento representa el número de columnas de la subplot, y el tercer argumento representa la posición de una subplot en la cuadrícula.

Aquí, fig.add_subplot(1,1,1) agregará una subplot en la primera posición de la cuadrícula 1 X 1 de la figura. Alternativamente, también podemos usar fig.add_subplot(111) para lograr el mismo resultado. El método add_subplot() devuelve un objeto axes, que puede ser usado para trazar y añadir detalles a la subplot añadida.

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 6))

ax_1 = fig.add_subplot(121)
ax_1.text(0.3, 0.5, "subplot(121)")

ax_2 = fig.add_subplot(222)
ax_2.text(0.3, 0.5, "subplot(222)")

ax_3 = fig.add_subplot(224)
ax_3.text(0.3, 0.5, "subplot(224)")

fig.suptitle("Figure with multiple Subplots")
plt.show()

Resultado:

Agregar múltiples subplots a una figura matplotlib

Aquí, tenemos una figura con tres subplots. La primera subplot es la primera figura de la cuadrícula con una fila y dos columnas. La segunda subplot representa la segunda figura en la cuadrícula con dos filas y dos columnas. De manera similar, la tercera fila representa la subplot en la cuarta posición de la cuadrícula con dos filas y dos columnas.

Crear una figura con subplots usando Matplotlib.pyplot.subplots()

El Matplotlib.pyplot.subplots() también añade subplots a la figura. Le pasamos el número de filas y columnas como argumento al método, y el método devuelve un objeto de la figura y un objeto de los ejes, que pueden ser usados para manipular el gráfico.

import matplotlib.pyplot as plt

fig, ax = plt.subplots(2, 1)

ax[0].text(0.3, 0.5, "1st Subplot")
ax[0].set_xticks([])
ax[0].set_yticks([])

ax[1].text(0.3, 0.5, "2nd Subplot")
ax[1].set_xticks([])
ax[1].set_yticks([])

fig.suptitle("Figure with 2 subplots", fontsize=16)
plt.show()

Resultado:

Agregar múltiples subplots a una figura matplotlib usando el método de subplots

Genera una figura con dos subplots en una cuadrícula de dos filas y una sola columna usando el método subplots(). La primera subplot o los ejes de la parte superior pueden ser manipulados con el primer elemento de la lista de los ax, y la segunda subplot o los ejes de la parte inferior pueden ser manipulados con el segundo elemento de la lista de los ax.

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [i ** 2 for i in x]
y2 = [4 * i + 1 for i in x]

fig, ax = plt.subplots(2, 1)

ax[0].plot(x, y1)
ax[0].set_xlabel("X")
ax[0].set_ylabel("Y")

ax[1].plot(x, y2)
ax[1].set_xlabel("X")
ax[1].set_ylabel("Y")

plt.tight_layout()
plt.show()

Resultado:

Personalizar subplots a una figura matplotlib usando el método de subplots

Genera una figura con dos subplots, traza la función x^2 en la subplot superior, y traza la función 4x+1 en la subplot inferior.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Matplotlib Subplot