Visualización de Datos: Tipos de Gráficos para Análisis de Correlación

Gráfico de Dispersión

Características: Muestra la relación entre dos variables continuas, revelando correlaciones, agrupaciones o valores atípicos mediante la distribución de puntos. Se puede añadir color o tamaño para representar dimensiones adicionales, evolucionando hacia un gráfico de burbuajs.

Aplicaciones: Análisis de correlación (ej. altura vs. peso), visualización de resultados de clustering, exploración de distribuciones de datos.

Ejemplo en Python:

import matplotlib.pyplot as plt
import numpy as np

# Generar datos de ejemplo
np.random.seed(42)
x = np.random.normal(50, 10, 100)
y = 0.5 * x + np.random.normal(0, 5, 100)

# Crear gráfico de dispersión
plt.figure(figsize=(8, 6))
plt.scatter(x, y, alpha=0.7, color='teal', edgecolors='black')
plt.xlabel('Variable A (unidades)')
plt.ylabel('Variable B (unidades)')
plt.title('Relación entre Variable A y B')
plt.grid(True, linestyle='--', alpha=0.5)
plt.show()

Gráfico de Burbujas

Características: Extensión del gráfico de dispersión que incluye una tercera dimensión (tamaño de las burbujas), adecuado para visualizar datos tridimensionales. Se debe prestar atención a la proporcionalidad de los tamaños.

Aplicaciones: Análisis multivariable como PIB nacional vs. población vs. ingreso per cápita, evaluación de ventas de productos con múltiples factores.

Ejemplo en Python:

import matplotlib.pyplot as plt
import numpy as np

# Datos simulados: ubicaciones, ventas y categorías
lat = [37.77, 37.78, 37.79, 37.80]
lon = [-122.42, -122.40, -122.39, -122.38]
sales = [5000, 8000, 3000, 6000]
categories = ['Alimentos', 'Retail', 'Servicios', 'Tecnología']

# Colores basados en categorías
color_map = {'Alimentos': 'red', 'Retail': 'blue', 'Servicios': 'green', 'Tecnología': 'purple'}
colors = [color_map[cat] for cat in categories]

# Crear gráfico de burbujas
plt.figure(figsize=(10, 7))
scatter = plt.scatter(lon, lat, s=[s/10 for s in sales], c=colors, alpha=0.6, edgecolors='black')
plt.xlabel('Longitud')
plt.ylabel('Latitud')
plt.title('Distribución de Ventas por Ubicación')

# Leyenda para categorías
for cat, color in color_map.items():
    plt.scatter([], [], c=color, s=50, label=cat)
plt.legend(title='Categoría', loc='upper left')
plt.grid(True, linestyle='--', alpha=0.3)
plt.show()

Gráfico de Correlación

Características: Visualiza la matriz de coeficientes de correlación entre variables, típicamente en forma de mapa de calor. Permite identificar rápidamente pares de variables con fuerte correlación positiva o negativa.

Aplicaciones: Selección de características en ingeniería de datos, análisis exploratorio de datos (EDA).

Ejemplo en Python:

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

# Configuración para fuentes
plt.rcParams['font.size'] = 12
plt.rcParams['axes.unicode_minus'] = False

# Generar datos sintéticos con correlaciones
np.random.seed(123)
n_samples = 200
data = {
    'Ingresos': np.random.normal(50000, 10000, n_samples),
    'Gasto': np.random.normal(30000, 8000, n_samples),
    'Ahorro': np.random.normal(20000, 5000, n_samples),
    'Inversion': np.random.normal(10000, 3000, n_samples)
}
data['Ahorro'] = 0.6 * data['Ingresos'] - data['Gasto'] + np.random.normal(0, 2000, n_samples)

import pandas as pd
df = pd.DataFrame(data)

# Calcular matriz de correlación
corr_matrix = df.corr()

# Visualizar como mapa de calor
plt.figure(figsize=(8, 6))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', center=0, fmt='.2f', linewidths=0.5)
plt.title('Matriz de Correlación entre Variables Financieras')
plt.tight_layout()
plt.show()

Mapa de Calor (Heatmap)

Características: Utiliza gradientes de color para representar valores en una matriz bidimensional, ideal para mostrar patrones como series temporales o distribuciones espaciales.

Aplicaciones: Distribución de tráfico web por hora y día, datos de expresión génica, densidad geográfica.

Ejemplo en Python:

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

# Datos simulados: actividad horaria semanal
horas = 24
dias = 7
actividad = np.random.rand(horas, dias)

# Etiquetas en español
dias_semana = ['Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Sáb', 'Dom']

# Crear mapa de calor
plt.figure(figsize=(10, 6))
sns.heatmap(actividad, cmap='YlGnBu', xticklabels=dias_semana, yticklabels=range(horas))
plt.xlabel('Día de la Semana')
plt.ylabel('Hora del Día')
plt.title('Actividad Horaria Semanal')
plt.show()

Gráfico de Densidad 2D

Características: Muestra la distribución de densidad de los puntos de datos, superando problemas de superposición en gráficos de dispersión. Se presenta en formas de contornos o bloques de color.

Aplicaciones: Visualización de conjuntos de datos grandes, densidad de coordenadas geográficas, distribución de datos biométricos.

Ejemplo en Python:

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

# Configurar fuente para caracteres especiales
plt.rcParams['font.size'] = 12

# Generar datos con distribución bimodal
np.random.seed(456)
x1 = np.random.normal(2, 1, 500)
y1 = np.random.normal(2, 1, 500)
x2 = np.random.normal(6, 1.5, 500)
y2 = np.random.normal(6, 1.5, 500)
x = np.concatenate([x1, x2])
y = np.concatenate([y1, y2])

# Gráfico de densidad con contornos
plt.figure(figsize=(8, 6))
sns.kdeplot(x=x, y=y, cmap='Reds', fill=True, levels=8)
plt.xlabel('Variable X')
plt.ylabel('Variable Y')
plt.title('Densidad 2D de Puntos de Datos')
plt.grid(True, alpha=0.3)
plt.show()

# Gráfico de densidad hexagonal
plt.figure(figsize=(8, 6))
plt.hexbin(x, y, gridsize=20, cmap='Blues')
plt.colorbar(label='Densidad')
plt.xlabel('Variable X')
plt.ylabel('Variable Y')
plt.title('Densidad Hexagonal 2D')
plt.show()

Etiquetas: scatter plot bubble plot correlation matrix heatmap 2D density plot

Publicado el 6-4 02:00