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()