plots multiple python matplotlib figure

python - multiple - En Matplotlib, ¿qué significa el argumento en fig.add_subplot(111)?



plt title python (4)

A veces me encuentro con un código como este:

import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [1, 4, 9, 16, 25] fig = plt.figure() fig.add_subplot(111) plt.scatter(x, y) plt.show()

Lo que produce:

He estado leyendo la documentación como un loco, pero no puedo encontrar una explicación para el 111 . A veces veo un 212 .

¿Qué significa el argumento de fig.add_subplot() ?


Creo que esto sería mejor explicado por la siguiente imagen:

Para inicializar lo anterior, se escribiría:

import matplotlib.pyplot as plt fig = plt.figure() fig.add_subplot(221) #top left fig.add_subplot(222) #top right fig.add_subplot(223) #bottom left fig.add_subplot(224) #bottom right plt.show()

EDIT: Alguna información adicional

Las siguientes combinaciones producen arreglos asimétricos de subparcelas.

subplot(2,2,[1 3]) subplot(2,2,2) subplot(2,2,4)

También puede utilizar el operador de dos puntos para especificar varias ubicaciones si están en secuencia.

subplot(2,2,1:2) subplot(2,2,3) subplot(2,2,4)

Referencia here


Estos son parámetros de cuadrícula de subplot codificados como un solo entero. Por ejemplo, "111" significa "cuadrícula 1x1, primer subparcela" y "234" significa "cuadrícula 2x3, cuarta parcela".

La forma alternativa para add_subplot(111) es add_subplot(1, 1, 1) .


La respuesta de Constantin es acertada, pero para más información, este comportamiento se hereda de Matlab.

El comportamiento de Matlab se explica en la sección Configuración de la figura - Visualización de varios gráficos por figura de la documentación de Matlab.

subplot (m, n, i) rompe la ventana de la figura en una matriz m-by-n de subplots pequeños y selecciona el subplot para el diagrama actual. Las parcelas están numeradas a lo largo de la fila superior de la ventana de la figura, luego a la segunda fila, y así sucesivamente.


Mi solucion es

fig = plt.figure() fig.add_subplot(1, 2, 1) #top and bottom left fig.add_subplot(2, 2, 2) #top right fig.add_subplot(2, 2, 4) #bottom right plt.show()