Práctica 4: Datos que Cuentan Historias (Gráficas).

Los seres humanos somos visuales. Si te muestro una tabla con 800 filas de números, te dolerá la cabeza. Pero si te muestro un gráfico colorido, tu cerebro detectará patrones en segundos.

Hoy convertiremos los datos aburridos en historias visuales. Usaremos dos librerías artísticas: Matplotlib (la base) y Seaborn (el maquillaje para que se vea genial).


🎯 Objetivo de la Práctica


🧠 Conceptos Clave

📊 Matplotlib vs Seaborn

📉 Tipos de Gráficos Básicos

  1. Histograma: Barras que nos dicen "cuántos hay de cada cosa".
  2. Scatter Plot: Puntos en un plano X-Y. Sirve para ver si una variable afecta a la otra (ej. ¿Más altura = Más peso?).

🛠️ Instrucciones Paso a Paso

Nota: Como es una nueva sesión de Colab, necesitamos cargar los datos de nuevo.

Paso 1: Importar Librerías y Datos

En tu primera celda, preparamos todo. Fíjate que ahora importamos dos cosas nuevas.

import pandas as pd
import matplotlib.pyplot as plt # La librería gráfica base
import seaborn as sns # La librería gráfica bonita

# Cargamos el dataset de Pokémon nuevamente
url = "[https://raw.githubusercontent.com/KeithGalli/pandas/master/pokemon_data.csv](https://raw.githubusercontent.com/KeithGalli/pandas/master/pokemon_data.csv)"
df = pd.read_csv(url)

print("Librerías gráficas y datos listos.")

Paso 2: El Histograma (Distribución del Ataque)

Queremos saber: ¿La mayoría de los Pokémon son débiles, fuertes o promedios? Para esto, analizaremos la columna Attack.

Copia y ejecuta:

# Configuramos el tamaño de la figura (Ancho, Alto)
plt.figure(figsize=(10, 6))

# Creamos el histograma
sns.histplot(df['Attack'], bins=20, color='skyblue')

# Ponemos títulos (¡Gráfico sin título no sirve!)
plt.title('Distribución del Ataque de los Pokémon')
plt.xlabel('Puntos de Ataque')
plt.ylabel('Cantidad de Pokémon')
plt.show() # Mostramos el dibujo

Analiza el resultado: Verás una "montaña". La parte más alta te dice dónde se encuentra la mayoría de los Pokémon (probablemente entre 50 y 80 de ataque).

Paso 3: Diagrama de Dispersión (Ataque vs. Defensa)

Ahora una pregunta más compleja: ¿Los Pokémon que pegan fuerte también aguantan mucho? (¿Hay relación entre Ataque y Defensa?).

Usaremos un Scatter Plot (nube de puntos).

plt.figure(figsize=(10, 6))

# x = Eje horizontal, y = Eje vertical
sns.scatterplot(data=df, x='Attack', y='Defense')

plt.title('Relación Ataque vs Defensa')
plt.show()

Analiza: Verás una nube dispersa. Si los puntos formaran una línea diagonal hacia arriba, significaría que "más ataque = más defensa". Aquí parece que no hay una regla clara, están por todos lados.

Paso 4: Agregando una tercera dimensión (Color)

El gráfico anterior es un poco aburrido. Vamos a ver si el Tipo de Pokémon (Fuego, Agua, Roca, etc.) influye. Usaremos el argumento hue (matiz/color) para colorear los puntos según su Type 1.

plt.figure(figsize=(12, 8)) # La hacemos más grande

# Agregamos hue='Type 1' para colorear por tipo
sns.scatterplot(data=df, x='Attack', y='Defense', hue='Type 1')

plt.title('Ataque vs Defensa por Tipo')
plt.show()

Analiza: ¡Ahora es arte moderno!

📝 Reto Final (Entregable)

Ahora te toca a ti ser el analista de datos.

Sube tu Notebook con los gráficos generados.


Revision #4
Created 15 December 2025 04:25:35 by Admin
Updated 15 December 2025 05:14:34 by Admin