outside matrices graficos graficas graficar example coordenadas python matplotlib subplot

python - matrices - ¿Cómo obtengo múltiples subtramas en matplotlib?



matplotlib title position (5)

Es posible que le interese el hecho de que a partir de la versión 2.1 de matplotlib, el segundo código de la pregunta también funciona bien.

Desde el registro de cambios :

La clase Figura ahora tiene un método de subtramas La clase Figura ahora tiene un método subplots () que se comporta igual que pyplot.subplots () pero en una figura existente.

Ejemplo:

import matplotlib.pyplot as plt fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex=True, sharey=True) ax1.plot(range(10), ''r'') ax2.plot(range(10), ''b'') ax3.plot(range(10), ''g'') ax4.plot(range(10), ''k'') plt.show()

Estoy un poco confundido sobre cómo funciona este código:

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

¿Cómo funciona el higo, los ejes 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)


Hay varias formas de hacerlo. El método de subplots crea la figura junto con las subtramas que luego se almacenan en la matriz ax . 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()

Sin embargo, algo como esto también funcionará, aunque no es tan "limpio" ya que está creando una figura con subtramas y luego agrega 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()


lea la documentación: matplotlib.pyplot.subplots

pyplot.subplots() devuelve una tupla fig, ax que se desempaqueta en dos variables usando la notación

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

el código

import matplotlib.pyplot as plt fig = plt.figure() axes = fig.subplots(nrows=2, ncols=2) plt.show()

no funciona porque subplots() es una función en pyplot no un miembro del objeto Figure .


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


  • También puede desempaquetar los ejes en la llamada de subtramas

  • Y establezca si desea compartir los ejes xey entre las subtramas

Me gusta esto:

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