Cómo trazar en múltiples subtramas

Resuelto bugsyb asked hace 9 años • 13 respuestas

Estoy un poco confundido acerca de cómo funciona este código:

fig, axes = plt.subplots(nrows=2, ncols=2)
plt.show()

¿Cómo funcionan los ejes de higo en este caso? ¿Qué hace?

Además, ¿por qué esto no funcionaría para hacer lo mismo?

fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)
bugsyb avatar Jul 30 '15 21:07 bugsyb
Aceptado

Hay varias formas de hacerlo. El subplotsmétodo crea la figura junto con las subtramas que luego se almacenan en la axmatriz. Por ejemplo:

import matplotlib.pyplot as plt

x = range(10)
y = range(10)

fig, ax = plt.subplots(nrows=2, ncols=2)

for row in ax:
    for col in row:
        col.plot(x, y)

plt.show()

ingrese la descripción de la imagen aquí

Sin embargo, algo como esto también funcionará, aunque no es tan "limpio" ya que estás creando una figura con subtramas y luego agregas encima de ellas:

fig = plt.figure()

plt.subplot(2, 2, 1)
plt.plot(x, y)

plt.subplot(2, 2, 2)
plt.plot(x, y)

plt.subplot(2, 2, 3)
plt.plot(x, y)

plt.subplot(2, 2, 4)
plt.plot(x, y)

plt.show()

ingrese la descripción de la imagen aquí

 avatar Jul 30 '2015 16:07
import matplotlib.pyplot as plt

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

ax[0, 0].plot(range(10), 'r') #row=0, col=0
ax[1, 0].plot(range(10), 'b') #row=1, col=0
ax[0, 1].plot(range(10), 'g') #row=0, col=1
ax[1, 1].plot(range(10), 'k') #row=1, col=1
plt.show()

ingrese la descripción de la imagen aquí

Khalil Al Hooti avatar Sep 11 '2018 21:09 Khalil Al Hooti