English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Multiplots de Matplotlib

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

La función subplot() devuelve el objeto axes en la posición de la cuadrícula dada. La firma de esta función es -

# Nombre de archivo: example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
plt.subplot(subplot(nrows, ncols, index))

En la imagen actual, esta función crea y devuelve un objeto Axes en la posición de la cuadrícula ncolsx de nrows en la posición de índice. El índice comienza desde1hasta nrows * ncols, en orden creciente por filas. Si nrows, ncols e index son todos menores que10El índice también se puede proporcionar como un solo número, o como tres números conectados, separados por comas.

Por ejemplo, subplot(2, 3, 3) y subplot(233) se crea un eje en la esquina superior derecha de la imagen, ocupando la mitad de la altura de la imagen y un tercio de la anchura de la imagen.

La creación de subplots eliminará cualquier subplot existente que se solape, en lugar de compartir límites.

Consulte el siguiente código de ejemplo:

# Nombre de archivo: example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
#! /usr/bin/env python
 #coding=utf-8
 import matplotlib.pyplot as plt
 # Mostrar configuración de chino...
 plt.rcParams['font.sans-serif'] = ['SimHei'] # Paso uno (reemplazar sans-fuente serif)
 plt.rcParams['axes.unicode_minus'] = False # Paso dos (resolver el problema de visualización del signo negativo en el eje negativo) Texto original de [Lidian Huo], para la retransmisión comercial, contacte al autor para obtener autorización, para fines no comerciales, mantenga el enlace original
 # dibujar una línea, creando implícitamente un subplot(111)
 plt.plot([1,2,3])
 # ahora cree un subplot que represente el gráfico superior de una rejilla con 2 filas y 1 column.
 # Dado que este subplot se superpondrá al primero, se eliminará el gráfico (y sus ejes) previamente creado
 plt.subplot(211)
 plt.plot(range(12))
 plt.subplot(212, facecolor='y') # crea 2nd subplot con fondo amarillo
 plt.plot(range(12))
 plt.show()

Ejecutar el código de ejemplo superior para obtener los siguientes resultados:

# La función add_subplot() de la clase figure no sobrescribe el gráfico existente, consulte el siguiente código: -

# Nombre de archivo: example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
#! /usr/bin/env python
 #coding=utf-8
 import matplotlib.pyplot as plt
 # Mostrar configuración de chino...
 plt.rcParams['font.sans-serif'] = ['SimHei'] # Paso uno (reemplazar sans-fuente serif)
 plt.rcParams['axes.unicode_minus'] = False # Paso dos (solución al problema de visualización del signo negativo en los ejes negativos)
 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])
 plt.show()

Ejecutar el código de ejemplo superior para obtener los siguientes resultados:

Se puede agregar un gráfico insertado en el mismo lienzo gráfico añadiendo otro objeto de eje. Consulte el siguiente código de implementación: -

# Nombre de archivo: example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
#! /usr/bin/env python
 #coding=utf-8
 import matplotlib.pyplot as plt
 import numpy as np
 import math
 # Mostrar configuración de chino...
 plt.rcParams['font.sans-serif'] = ['SimHei'] # Paso uno (reemplazar sans-fuente serif)
 plt.rcParams['axes.unicode_minus'] = False # Paso dos (solución al problema de visualización del signo negativo en los ejes negativos)
 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]) # axes insert
 y = np.sin(x)
 axes1.plot(x, y, 'b')
 axes2.plot(x, np.cos(x), 'r')
 axes1.set_title('Seno')
 axes2.set_title("Coseno")
 plt.show()

Ejecutar el código de ejemplo superior para obtener los siguientes resultados: