馃摎 Matplotlib Subplot: Ejemplos y Aplicaciones B谩sicas

Matplotlib Logo

Acorde贸n de los 脥ndices de Matplotlib Subplot




Lecci贸n: 9 - Matplotlib Subplot

Display Multiple Plots

馃搳 Matplotlib te permite mostrar **m煤ltiples gr谩ficos (subplots)** dentro de una misma figura. Esto es muy 煤til para comparar diferentes conjuntos de datos relacionados o para visualizar distintos aspectos de los mismos datos en paralelo.

Hay varias maneras de crear figuras con m煤ltiples gr谩ficos, siendo la m谩s com煤n el uso de la funci贸n `plt.subplot()`, que exploraremos en el siguiente tema. Sin embargo, conceptualmente, cuando trabajas con m煤ltiples gr谩ficos, est谩s dividiendo la figura en una cuadr铆cula de filas y columnas, y cada gr谩fico se dibuja en una celda espec铆fica de esa cuadr铆cula.

Para mostrar m煤ltiples gr谩ficos, generalmente se realizan m煤ltiples llamadas a las funciones de trazado (como `plt.plot()`, `plt.scatter()`, etc.), cada una precedida por una instrucci贸n que define en qu茅 subgr谩fico se debe dibujar.

馃捇 C贸digo de Ejemplo: Mostrando m煤ltiples gr谩ficos


import matplotlib.pyplot as plt
import numpy as np

# Datos para el primer gr谩fico
x1 = np.array([0, 1, 2, 3])
y1 = np.array([3, 8, 1, 10])

# Datos para el segundo gr谩fico
x2 = np.array([0, 1, 2, 3])
y2 = np.array([6, 2, 7, 5])

# Crear la figura y los subgr谩ficos
plt.figure(figsize=(8, 4)) # Opcional: define el tama帽o de la figura

plt.subplot(1, 2, 1) # 1 fila, 2 columnas, primer gr谩fico
plt.plot(x1, y1)
plt.title("Gr谩fico 1")

plt.subplot(1, 2, 2) # 1 fila, 2 columnas, segundo gr谩fico
plt.plot(x2, y2)
plt.title("Gr谩fico 2")

plt.tight_layout() # Ajusta los espacios entre subgr谩ficos
plt.show()
            

En este ejemplo, hemos creado una figura con dos subgr谩ficos dispuestos en una fila y dos columnas. La funci贸n `plt.subplot(1, 2, 1)` activa el primer subgr谩fico para dibujar, y `plt.subplot(1, 2, 2)` activa el segundo.

馃搳 Ejemplo Visual Interactivo (Generado con JavaScript)

馃憜 Este gr谩fico generado con JavaScript ilustra c贸mo se pueden mostrar dos gr谩ficos separados dentro de la misma 谩rea de visualizaci贸n.

The subplot() Function

馃洜️ La funci贸n `plt.subplot()` es la herramienta principal en Matplotlib para crear **subplots** dentro de una figura. Proporciona una forma flexible de definir la disposici贸n de los gr谩ficos.

La funci贸n `plt.subplot()` toma tres argumentos enteros:

  1. El n煤mero de **filas** en la disposici贸n de los subgr谩ficos.
  2. El n煤mero de **columnas** en la disposici贸n de los subgr谩ficos.
  3. El **铆ndice** del subgr谩fico actual en el que se va a dibujar (empezando desde 1 y aumentando de izquierda a derecha y de arriba a abajo).

Por ejemplo, `plt.subplot(2, 3, 4)` crear谩 una disposici贸n de 2 filas y 3 columnas de subgr谩ficos, y activar谩 el cuarto subgr谩fico (el de la segunda fila, primera columna) para dibujar.

Despu茅s de llamar a `plt.subplot()` para activar un subgr谩fico espec铆fico, cualquier funci贸n de trazado posterior (como `plt.plot()`, `plt.title()`, `plt.xlabel()`, etc.) se aplicar谩 a ese subgr谩fico activo.

馃捇 C贸digo de Ejemplo: Usando la funci贸n subplot()


import matplotlib.pyplot as plt
import numpy as np

# Datos para los gr谩ficos
x = np.array([0, 1, 2, 3])
y1 = np.array([3, 8, 1, 10])
y2 = np.array([6, 2, 7, 5])
y3 = np.array([10, 4, 9, 1])
y4 = np.array([2, 9, 5, 7])

# Crear una figura con 2 filas y 2 columnas de subgr谩ficos
plt.figure(figsize=(10, 8))

plt.subplot(2, 2, 1)
plt.plot(x, y1)
plt.title("Subgr谩fico 1")

plt.subplot(2, 2, 2)
plt.plot(x, y2)
plt.title("Subgr谩fico 2")

plt.subplot(2, 2, 3)
plt.plot(x, y3)
plt.title("Subgr谩fico 3")

plt.subplot(2, 2, 4)
plt.plot(x, y4)
plt.title("Subgr谩fico 4")

plt.tight_layout()
plt.show()
            

En este ejemplo, hemos creado una figura con una disposici贸n de 2x2 (2 filas, 2 columnas) de subgr谩ficos. Luego, hemos activado cada subgr谩fico utilizando `plt.subplot()` y hemos dibujado una l铆nea y un t铆tulo en cada uno.

馃搳 Ejemplo Visual Interactivo (Generado con JavaScript)

馃憜 Esta representaci贸n con JavaScript muestra cuatro gr谩ficos separados, dispuestos en una cuadr铆cula de 2x2, simulando el efecto de la funci贸n `subplot()` de Matplotlib.

Title

馃枊️ Cuando trabajas con m煤ltiples subgr谩ficos, es crucial que cada uno tenga su propio **t铆tulo** para indicar claramente qu茅 se est谩 visualizando en ese espacio particular. Esto facilita la comprensi贸n individual de cada gr谩fico dentro de la figura general.

Para a帽adir un t铆tulo a un subgr谩fico espec铆fico, primero debes asegurarte de que ese subgr谩fico est茅 activo (usando `plt.subplot()` con el 铆ndice correcto). Luego, puedes utilizar la funci贸n `plt.title()` como lo har铆as normalmente para un gr谩fico individual. El t铆tulo se aplicar谩 al subgr谩fico actualmente activo.

Puedes personalizar la apariencia del t铆tulo de cada subgr谩fico de la misma manera que lo har铆as con un t铆tulo de un gr谩fico individual, utilizando el argumento `fontdict` para controlar la fuente, el tama帽o, el color, etc.

馃捇 C贸digo de Ejemplo: A帽adiendo t铆tulos a subgr谩ficos


import matplotlib.pyplot as plt
import numpy as np

# Datos para los gr谩ficos
x = np.array([0, 1, 2, 3])
y1 = np.array([3, 8, 1, 10])
y2 = np.array([6, 2, 7, 5])

# Crear una figura con 1 fila y 2 columnas de subgr谩ficos
plt.figure(figsize=(10, 4))

plt.subplot(1, 2, 1)
plt.plot(x, y1)
plt.title("Primer Gr谩fico")
plt.xlabel("Eje X")
plt.ylabel("Eje Y")

plt.subplot(1, 2, 2)
plt.plot(x, y2)
plt.title("Segundo Gr谩fico")
plt.xlabel("Eje X")
plt.ylabel("Eje Y")

plt.tight_layout()
plt.show()
            

En este ejemplo, hemos creado una figura con dos subgr谩ficos. Despu茅s de activar cada subgr谩fico con `plt.subplot()`, hemos utilizado `plt.title()` para asignar un t铆tulo diferente a cada uno.

馃搳 Ejemplo Visual Interactivo (Generado con JavaScript)

馃憜 Esta representaci贸n con JavaScript muestra dos gr谩ficos separados, cada uno con su propio t铆tulo, simulando los t铆tulos de los subgr谩ficos de Matplotlib.

Super Title

馃弳 Adem谩s de los t铆tulos individuales para cada subgr谩fico, Matplotlib te permite a帽adir un **super t铆tulo** a toda la figura. Este t铆tulo se coloca generalmente en la parte superior central de la figura y proporciona un encabezado general para el conjunto de subgr谩ficos.

Puedes a帽adir un super t铆tulo utilizando la funci贸n `plt.suptitle("T铆tulo de la Figura")`. Al igual que con los t铆tulos de los subgr谩ficos, puedes personalizar su apariencia con el argumento `fontdict`.

El super t铆tulo es 煤til cuando los m煤ltiples subgr谩ficos est谩n relacionados y deseas proporcionar un contexto general para toda la visualizaci贸n.

馃捇 C贸digo de Ejemplo: A帽adiendo un super t铆tulo


import matplotlib.pyplot as plt
import numpy as np

# Datos para los gr谩ficos
x = np.array([0, 1, 2, 3])
y1 = np.array([3, 8, 1, 10])
y2 = np.array([6, 2, 7, 5])

# Crear una figura con 1 fila y 2 columnas de subgr谩ficos
plt.figure(figsize=(10, 6))
plt.suptitle("An谩lisis Comparativo de Datos", fontsize=16, fontweight='bold')

plt.subplot(1, 2, 1)
plt.plot(x, y1)
plt.title("Conjunto de Datos A")
plt.xlabel("Tiempo")
plt.ylabel("Valor")

plt.subplot(1, 2, 2)
plt.plot(x, y2)
plt.title("Conjunto de Datos B")
plt.xlabel("Tiempo")
plt.ylabel("Valor")

plt.tight_layout(rect=[0, 0.03, 1, 0.95]) # Ajusta el layout para evitar el solapamiento con suptitle
plt.show()
            

En este ejemplo, hemos creado una figura con dos subgr谩ficos y hemos a帽adido un super t铆tulo utilizando `plt.suptitle()`. El argumento `rect` en `plt.tight_layout()` se utiliza para ajustar el espaciado de los subgr谩ficos para que el super t铆tulo no se solape con los t铆tulos de los subgr谩ficos.

馃搳 Ejemplo Visual Interactivo (Generado con JavaScript)

An谩lisis Comparativo de Datos

馃憜 Esta representaci贸n con JavaScript simula un super t铆tulo utilizando un elemento `h4` por encima de los dos gr谩ficos separados.




Publicar un comentario

0 Comentarios