2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Matplotlib

Tutorial Matplotlib: Gráficos multivariantes

Aprende a crear gráficas multivariantes con Matplotlib, visualizando múltiples variables en un solo gráfico. Mejora tus análisis de datos con técnicas avanzadas.

Aprende Matplotlib GRATIS y certifícate

¿Qué son las gráficas multivariantes?

Las gráficas multivariantes son representaciones visuales que permiten analizar más de dos variables simultáneamente en un solo gráfico. Estas gráficas son esenciales en el análisis de datos complejos, donde múltiples variables pueden interactuar de maneras no evidentes a simple vista. 

Al utilizar gráficas multivariantes, se pueden identificar patrones, correlaciones y relaciones entre las variables que no serían visibles utilizando gráficos univariantes o bivariantes.

En Matplotlib, las gráficas multivariantes se pueden crear utilizando diferentes técnicas y tipos de gráficos. Algunas de las opciones más comunes incluyen gráficos de dispersión que utilizan colores y tamaños para representar variables adicionales, diagramas de calor que muestran la intensidad de las relaciones entre variables, y gráficos tridimensionales que permiten la visualización de tres dimensiones a la vez.

Para crear una gráfica multivariante en Matplotlib, es fundamental entender cómo mapear correctamente las variables a las propiedades visuales del gráfico, como el color, el tamaño o la posición. 

A continuación, se muestra un ejemplo básico de cómo crear un gráfico de dispersión multivariante utilizando Matplotlib, donde se utilizan colores y tamaños para representar dos variables adicionales:

import matplotlib.pyplot as plt
import numpy as np

# Crear un generador de números aleatorios con una semilla específica
rng = np.random.default_rng(seed=42)

# Generación de datos aleatorios
x = rng.random(100)
y = rng.random(100)
colors = rng.random(100)
sizes = 1000 * rng.random(100)

# Creación del gráfico de dispersión
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='viridis')
plt.xlabel('Variable X')
plt.ylabel('Variable Y')
plt.title('Gráfico de dispersión multivariante')
plt.colorbar()  # Agrega una barra de color para interpretar los valores
plt.show()

Así se vería el gráfico de dispersión multivariante:

En este ejemplo, los puntos en la gráfica representan dos variables, x e y, mientras que el color y el tamaño de los puntos representan otras dos variables. La función plt.scatter() permite especificar el color (c) y el tamaño (s) de cada punto, así como la transparencia (alpha) y el mapa de colores (cmap). La función plt.colorbar() añade una barra de color que ayuda a interpretar los valores de la variable codificada por color.

El uso adecuado de gráficas multivariantes en Matplotlib requiere una comprensión profunda de los datos y de cómo las variables interactúan entre sí. Además, es crucial elegir el tipo de gráfico más adecuado en función de las características de los datos y el mensaje que se desea transmitir.

Pares de Gráficas (Pairplots)

Los pares de gráficas o pairplots son una técnica utilizada para visualizar las relaciones entre múltiples variables de un conjunto de datos, mostrando todas las combinaciones posibles de gráficos bivariantes. En este contexto, Matplotlib se utiliza generalmente en combinación con la biblioteca Seaborn, que ofrece una función específica llamada pairplot() para crear estos gráficos de manera eficiente. Un pairplot es especialmente útil para identificar correlaciones y patrones entre las variables de un DataFrame.

Para crear un pairplot, primero es necesario tener un conjunto de datos estructurado, generalmente en forma de un DataFrame de Pandas. 

La función pairplot() de Seaborn genera automáticamente una matriz de gráficos de dispersión, donde cada celda de la matriz muestra un gráfico de dispersión entre dos variables diferentes. Además, en la diagonal principal, se representan histogramas o diagramas de densidad para cada variable individual. Esto proporciona una visión general rápida de las distribuciones univariantes y las relaciones bivariantes dentro del conjunto de datos.

Aquí tienes un ejemplo de cómo crear un pairplot utilizando Seaborn junto con Matplotlib:

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# Crear un generador de números aleatorios con una semilla específica
rng = np.random.default_rng(seed=42)

# Creación de un DataFrame de ejemplo
data = pd.DataFrame({
    'Variable A': rng.random(100),
    'Variable B': rng.random(100),
    'Variable C': rng.random(100),
    'Variable D': rng.random(100)
})

# Creación del pairplot
sns.pairplot(data)
plt.show()

A continuación, se muestra la gráfica resultante:

En este ejemplo, se genera un DataFrame de Pandas con cuatro variables aleatorias. La función sns.pairplot() se encarga de crear el par de gráficos, mostrando las relaciones entre todas las combinaciones posibles de las variables A, B, C y D.

Una característica importante de los pairplots es la posibilidad de añadir una variable categórica para colorear los puntos, lo que permite visualizar cómo diferentes categorías afectan las relaciones entre las variables numéricas. Esto se puede lograr utilizando el parámetro hue en la función pairplot(). A continuación, se muestra un ejemplo de cómo hacerlo:

# Añadir una variable categórica
data['Categoría'] = rng.choice(['Grupo 1', 'Grupo 2'], size=100)

# Creación del pairplot con hue
sns.pairplot(data, hue='Categoría')
plt.show()

En este caso, se añade una columna categórica Categoría al DataFrame, y se utiliza el parámetro hue para diferenciar las categorías en el pairplot. Esto permite visualizar diferencias en las relaciones bivariantes entre diferentes grupos de datos.

Los pairplots son herramientas valiosas en el análisis exploratorio de datos, ya que ofrecen una forma rápida y visual de detectar patrones, correlaciones y posibles anomalías dentro de un conjunto de datos multivariante. Al integrarse con Matplotlib, Seaborn proporciona una interfaz sencilla y flexible para generar estos gráficos, permitiendo ajustar detalles estéticos y funcionales según sea necesario.

Gráficos de dispersión con colores y tamaños

Los gráficos de dispersión en Matplotlib son una herramienta fundamental para visualizar la relación entre dos variables. Sin embargo, su capacidad se amplía significativamente cuando se introducen dimensiones adicionales mediante el uso de colores y tamaños. Esto permite representar hasta cuatro variables en un solo gráfico bidimensional. En un gráfico de dispersión multivariante, cada punto representa una observación, y las propiedades visuales como el color y el tamaño se utilizan para codificar información adicional sobre cada observación.

Para implementar un gráfico de dispersión con múltiples variables en Matplotlib, es esencial entender cómo mapear correctamente las variables adicionales a los parámetros c (color) y s (tamaño) en la función plt.scatter()

A continuación se muestra un ejemplo avanzado que ilustra cómo crear un gráfico de dispersión donde el color y el tamaño de los puntos representan dos variables adicionales.

import matplotlib.pyplot as plt
import numpy as np

# Crear un generador de números aleatorios con una semilla específica
rng = np.random.default_rng(seed=42)

# Generación de datos aleatorios para el ejemplo
x = rng.random(150)
y = rng.random(150)
colors = rng.random(150)
sizes = 500 * rng.random(150)

# Creación del gráfico de dispersión
plt.figure(figsize=(10, 6))
scatter = plt.scatter(x, y, c=colors, s=sizes, alpha=0.6, cmap='plasma', edgecolors='w', linewidth=0.5)
plt.xlabel('Eje X')
plt.ylabel('Eje Y')
plt.title('Gráfico de dispersión con colores y tamaños')
plt.colorbar(scatter, label='Escala de colores')
plt.show()

Así es como luce el gráfico final:

En este ejemplo, se utiliza un conjunto de datos aleatorios para representar las variables x e y, mientras que los colores y tamaños de los puntos se determinan por otras dos variables aleatorias. La función plt.scatter() es clave, ya que permite especificar el color (c) y el tamaño (s) de cada punto, además de ajustar la transparencia con el parámetro alpha. El uso de cmap='plasma' define el mapa de colores que se aplica a los puntos, y plt.colorbar() añade una barra de color al gráfico, facilitando la interpretación de los valores codificados por color.

El tamaño de los puntos, especificado por el parámetro s, es escalable y puede ajustarse según las necesidades del análisis. En este caso, multiplicamos por 500 para hacer más evidentes las diferencias en tamaño. La opción edgecolors='w' y linewidth=0.5 añaden bordes blancos a los puntos, mejorando la legibilidad del gráfico al evitar que los colores y los tamaños se mezclen visualmente.

La elección del mapa de colores (cmap) es crucial para una representación efectiva de los datos. Matplotlib ofrece una amplia variedad de paletas, como viridis, plasma, inferno, y magma, cada una con características específicas que pueden ser más adecuadas dependiendo del contexto del análisis. La comprensión de estos aspectos permite optimizar la visualización de datos complejos y mejorar la interpretación de los resultados en un entorno multivariante.

Diagramas de Calor (Heatmaps) para múltiples variables

Los diagramas de calor son una herramienta eficaz para representar visualmente matrices de datos, donde las variaciones en los valores se indican mediante cambios en el color. 

En el contexto de múltiples variables, los heatmaps permiten visualizar la relación entre distintas variables y cómo estas interactúan entre sí, proporcionando una visión clara de patrones y correlaciones. En Matplotlib, los heatmaps se generan principalmente utilizando la función imshow(), que permite mapear los valores de una matriz a una escala de colores.

Para crear un heatmap en Matplotlib, es esencial preparar primero los datos en forma de matriz, donde cada celda representa un par de variables. Por ejemplo, considere una matriz de correlación que muestra cómo se correlacionan varias variables entre sí. 

A continuación se presenta un ejemplo de cómo construir un heatmap utilizando Matplotlib y NumPy:

import matplotlib.pyplot as plt
import numpy as np

# Crear un generador de números aleatorios con una semilla específica
rng = np.random.default_rng(seed=42)

# Generación de datos aleatorios y cálculo de la matriz de correlación
data = rng.random((10, 12))
correlation_matrix = np.corrcoef(data, rowvar=False)

# Creación del heatmap
plt.figure(figsize=(8, 6))
heatmap = plt.imshow(correlation_matrix, cmap='coolwarm', interpolation='nearest')
plt.colorbar(heatmap, label='Coeficiente de correlación')
plt.title('Diagrama de calor de la matriz de correlación')
plt.xlabel('Variables')
plt.ylabel('Variables')
plt.xticks(ticks=np.arange(12), labels=[f'Var{i+1}' for i in range(12)], rotation=45)
plt.yticks(ticks=np.arange(12), labels=[f'Var{i+1}' for i in range(12)])
plt.show()

La visualización resultante es la siguiente:

En este ejemplo, se genera una matriz de correlación a partir de datos aleatorios. La función np.corrcoef() calcula los coeficientes de correlación entre las variables. La función imshow() se utiliza para visualizar esta matriz como un heatmap, donde el argumento cmap='coolwarm' especifica el mapa de colores utilizado para representar los valores de correlación. La barra de color añadida con plt.colorbar() proporciona una referencia visual para interpretar los valores de correlación.

Al crear heatmaps para múltiples variables, es crucial elegir adecuadamente el mapa de colores (cmap) para asegurar una representación clara y comprensible de los datos. Matplotlib ofrece diversas opciones de paletas de colores, como viridis, plasma, inferno, y magma, cada una adecuada para diferentes tipos de datos y contextos analíticos.

Los heatmaps son especialmente útiles en el análisis de datos exploratorio, permitiendo identificar rápidamente patrones y relaciones en grandes conjuntos de datos. Además, al integrar estos diagramas con otras bibliotecas como Seaborn, se puede mejorar la estética y funcionalidad del gráfico, añadiendo características como anotaciones de valores dentro de las celdas o ajustando automáticamente las escalas de color.

Gráficas en 3D

Las gráficas en tres dimensiones (3D) en Matplotlib permiten visualizar la relación entre tres variables de manera simultánea, proporcionando una representación tridimensional de los datos. 

Para trabajar con gráficos 3D en Matplotlib, es esencial utilizar el módulo mpl_toolkits.mplot3d, que ofrece una serie de funciones específicas para la creación de superficies, dispersión y otros tipos de gráficos en 3D. A continuación, se muestra cómo crear una gráfica de dispersión en 3D, que es una de las formas más comunes de visualizar datos multivariantes en tres dimensiones.

Para crear una gráfica de dispersión en 3D, primero se debe inicializar un objeto Axes3D y luego utilizar el método scatter() para definir las coordenadas tridimensionales de los puntos a representar. Aquí tienes un ejemplo de cómo lograrlo:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

# Crear un generador de números aleatorios con una semilla específica
rng = np.random.default_rng(seed=42)

# Generación de datos aleatorios para el ejemplo
x = rng.random(100)
y = rng.random(100)
z = rng.random(100)
colors = rng.random(100)
sizes = 100 * rng.random(100)

# Creación de la figura y el gráfico 3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# Gráfico de dispersión en 3D
scatter = ax.scatter(x, y, z, c=colors, s=sizes, cmap='viridis', alpha=0.6)
ax.set_xlabel('Eje X')
ax.set_ylabel('Eje Y')
ax.set_zlabel('Eje Z')
plt.title('Gráfico de dispersión en 3D')
plt.colorbar(scatter, label='Escala de colores')
plt.show()

Este sería el aspecto de la gráfica:

En este ejemplo, las variables x, y y z son las coordenadas tridimensionales de cada punto en el gráfico, mientras que el color y el tamaño de los puntos representan variables adicionales. La función ax.scatter() se encarga de trazar los puntos en el espacio 3D, permitiendo especificar parámetros como el color (c) y el tamaño (s) de los puntos. La elección de un mapa de colores adecuado (cmap='viridis') es crucial para facilitar la interpretación de la variable codificada por color.

Además de gráficos de dispersión, Matplotlib permite crear superficies 3D utilizando la función plot_surface(). Esta técnica es útil para visualizar funciones matemáticas o superficies derivadas de datos experimentales. A continuación se muestra un ejemplo de cómo crear una superficie 3D:

# Generación de una cuadrícula de puntos
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))

# Creación de la figura y gráfico de superficie
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# Gráfico de superficie
surface = ax.plot_surface(x, y, z, cmap='coolwarm', edgecolor='none')
ax.set_xlabel('Eje X')
ax.set_ylabel('Eje Y')
ax.set_zlabel('Eje Z')
plt.title('Gráfico de superficie 3D')
plt.colorbar(surface, label='Valor de Z')
plt.show()

En este ejemplo, se genera una cuadrícula de puntos en el espacio XY y se calcula el valor de z como una función de x e y. La función plot_surface() dibuja la superficie en el espacio 3D, permitiendo especificar un mapa de colores para representar los valores de z. La opción edgecolor='none' elimina las líneas de los bordes, proporcionando una apariencia más suave a la superficie.

Las gráficas en 3D son herramientas esenciales para el análisis de datos multivariantes, permitiendo visualizar relaciones complejas entre múltiples variables. La capacidad de rotar e interactuar con estos gráficos en Matplotlib ayuda a obtener una comprensión más profunda de los datos y a identificar patrones que no serían evidentes en representaciones bidimensionales.

Aprende Matplotlib GRATIS online

Ejercicios de esta lección Gráficos multivariantes

Evalúa tus conocimientos de esta lección Gráficos multivariantes con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Todas las lecciones de Matplotlib

Accede a todas las lecciones de Matplotlib y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Introducción E Instalación De Matplotlib

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Introducción Y Entorno

Conceptos Básicos De Matplotlib

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Introducción Y Entorno

Gráficos Univariantes

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Creación De Gráficos

Gráficos Bivariantes

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Creación De Gráficos

Gráficos Multivariantes

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Creación De Gráficos

Títulos, Etiquetas Y Leyenda Y Límites

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Personalización De Gráficos

Temas Predefinidos, Colores Y Estilos

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Personalización De Gráficos

Ejes, Ajustes De Ejes

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Personalización De Gráficos

Subplots Y Grillas

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Personalización De Gráficos

Integración De Matplotlib Con Numpy

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Integraciones

Integración De Matplotlib Con Pandas

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Integraciones

Integración De Matplotlib Con Seaborn

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Integraciones

Evaluación Test De Conocimientos

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Evaluación Matplotlib

Evaluación Conocimiento De Código

2022-09-27T22:26:51.030457 image/svg+xml Matplotlib v3.6.0, https://matplotlib.org/

Evaluación Matplotlib

Accede GRATIS a Matplotlib y certifícate

Certificados de superación de Matplotlib

Supera todos los ejercicios de programación del curso de Matplotlib y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

1. Comprender el concepto y la utilidad de las gráficas multivariantes en el análisis de datos.

2. Aprender a crear pares de gráficas utilizando Matplotlib para comparar múltiples variables.

3. Utilizar gráficos de dispersión para representar variables adicionales mediante colores y tamaños.

4. Desarrollar habilidades para construir diagramas de calor que visualicen la relación entre múltiples variables.

5. Explorar gráficas en 3D para una representación tridimensional de los datos.