Matplotlib - Multiplots

En este capítulo, aprenderemos cómo crear múltiples subtramas en el mismo lienzo.

los subplot()La función devuelve el objeto de los ejes en una posición de cuadrícula determinada. La firma de llamada de esta función es:

plt.subplot(subplot(nrows, ncols, index)

En la figura actual, la función crea y devuelve un objeto Axes, en el índice de posición de una cuadrícula de nrows por ncolsaxes. Los índices van de 1 a nrows * ncols, incrementándose en orden de fila mayor. Ifnrows, ncols e index son todos menores que 10. Los índices también se pueden dar como número único, concatenado, de tres dígitos.

Por ejemplo, la subparcela (2, 3, 3) y la subparcela (233) crean ambos ejes en la esquina superior derecha de la figura actual, ocupando la mitad de la altura de la figura y un tercio del ancho de la figura.

La creación de una subtrama eliminará cualquier subtrama preexistente que se superponga con ella más allá de compartir un límite.

import matplotlib.pyplot as plt
# plot a line, implicitly creating a subplot(111)
plt.plot([1,2,3])
# now create a subplot which represents the top plot of a grid with 2 rows and 1 column.
#Since this subplot will overlap the first, the plot (and its axes) previously 
created, will be removed
plt.subplot(211)
plt.plot(range(12))
plt.subplot(212, facecolor='y') # creates 2nd subplot with yellow background
plt.plot(range(12))

La línea de código anterior genera el siguiente resultado:

La función add_subplot () de la clase figure no sobrescribirá la gráfica existente -

import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot([1,2,3])
ax2 = fig.add_subplot(221, facecolor='y')
ax2.plot([1,2,3])

Cuando se ejecuta la línea de código anterior, genera la siguiente salida:

Puede agregar un diagrama de inserción en la misma figura agregando otro objeto de ejes en el mismo lienzo de figura.

import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
fig=plt.figure()
axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # main axes
axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # inset axes
y = np.sin(x)
axes1.plot(x, y, 'b')
axes2.plot(x,np.cos(x),'r')
axes1.set_title('sine')
axes2.set_title("cosine")
plt.show()

Tras la ejecución de la línea de código anterior, se genera la siguiente salida: