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.