Saltar navegación

As gráficas con Matplotlib e Seaborn

Librerías para gráficos
IkamusumeFan. Librerías para gráficos (CC BY-SA)

Matplotlib: É como ter un lapis e un papel para debuxar gráficos en Python. Axúdanos a crear desde gráficos simples (como liñas e barras) ata visualizacións máis complexas. 

Seaborn: É como darlle un toque artístico aos teus gráficos. Baséase en Matplotlib, pero fai que todo sexa máis bonito e sinxelo, especialmente para gráficos estatísticos. 

Actividades de aprendizaxe

Actividade 1:Crear un gráfico de liñas con Matplotlib

Obxectivo: Aprender a crear gráficas de liñas con Matplotlib.
Instrución: Crear unha liña dadas unha serie de coordenadas x e y.

Resultado actividade
Creación propia. Resultado actividade (CC BY-SA)

Código Python: Crear un gráfico lineal a partir de coordenadas (x,y)

import matplotlib.pyplot as plt
# Importamos a biblioteca Matplotlib e renomeámola como "plt" para abreviar. Esta biblioteca permítenos crear gráficos e visualizacións.

x = [1, 2, 3, 4]
# Aquí definimos unha lista de valores que representarán o eixo X (horizontal) do gráfico. Por exemplo, poderían ser as semanas dun mes.

y = [10, 20, 25, 30]
# Esta é outra lista de valores que representarán o eixo Y (vertical) do gráfico. Poderían ser as vendas ou as puntuacións correspondentes ás semanas.

plt.plot(x, y)
# Este comando crea o gráfico de liñas usando os valores das listas "x" e "y". Une os puntos definidos por estas listas con liñas.

plt.title('O meu primeiro gráfico de liñas')
# Engadimos un título ao gráfico para explicar o que representa. Neste caso, chamámolo "O meu primeiro gráfico de liñas".

plt.xlabel('Eixo X')
# Etiquetamos o eixo X para describir o significado dos seus valores. Por exemplo, poderíamos dicir "Semanas" se o eixo X representa semanas.

plt.ylabel('Eixo Y')
# Etiquetamos o eixo Y para describir o significado dos seus valores. Por exemplo, poderíamos dicir "Vendas" se o eixo Y representa cifras de vendas.

plt.show()
# Amosamos o gráfico na pantalla. Este comando final é o que fai que o gráfico se vexa visualmente.
    

Actividade 2: Gráfica personalizada de ventas semanais

Obxectivo: Personalización de gráficos en Matplotlib
Instrución: Crear unha gráfica de ventas semanais con diferentes atributos como cor, estilo de liña, marcadores, etiquetas, cuadrícula e lenda

Resultado actividade
Creación propia. Resultado actividade (CC BY-SA)

Código Python: Ventas semanais

import matplotlib.pyplot as plt
# Importamos a biblioteca Matplotlib e renomeámola como "plt" para abreviar. Esta biblioteca permítenos crear gráficos e visualizacións.

# Datos
x = [1, 2, 3, 4]
# Definimos os valores do eixo X, que representan as semanas.

y = [10, 20, 25, 30]
# Definimos os valores do eixo Y, que representan os ingresos en euros.

# Crear o gráfico con personalización
plt.plot(x, y, color='purple', linestyle='--', marker='o', label='Vendas')
# Xeneramos un gráfico de liñas con cor violeta, liña discontinua e marcadores en forma de círculo.
# A etiqueta "Vendas" será usada na lenda.

# Engadir título e etiquetas personalizadas
plt.title('Gráfico de Vendas Semanais', fontsize=16, fontweight='bold', color='blue')
# Engadimos un título ao gráfico cun tamaño de letra maior, en negrita e de cor azul.

plt.xlabel('Semana', fontsize=12, color='green')
# Etiquetamos o eixo X para indicar que representa as semanas.

plt.ylabel('Ingresos (€)', fontsize=12, color='green')
# Etiquetamos o eixo Y para indicar que representa os ingresos en euros.

# Agregar unha cuadrícula ao gráfico
plt.grid(color='pink', linestyle=':', linewidth=0.9)
# Engadimos unha cuadrícula con cor rosa, liñas punteadas e grosor de 0.9.

# Mostrar a lenda
plt.legend()
# Mostramos a lenda para identificar a liña do gráfico.

# Mostrar o gráfico
plt.show()
# Amosamos o gráfico na pantalla.    

Actividade 3: Gráfico de dispersión con Seaborn

Obxectivo: Comprender como crear unha gráfica de dispersión con Seaborn.
Instrución: Crear unha gráfica de dispersión da relación entre idade e altura.

Resultado actividade
Creación propia. Resultado actividade (CC BY-SA)

Unha gráfica de dispersión é unha representación visual que mostra a relación entre dúas variables, onde cada punto indica un par de valores correspondentes aos eixos X e Y, axudando a identificar patróns, tendencias ou correlacións nos datos.

Código Python: Gráfico de dispersión Altura/Idade

import seaborn as sns
# Importamos a biblioteca Seaborn, que se utiliza para crear gráficos elegantes e estatísticos en Python.

import pandas as pd
# Importamos a biblioteca Pandas, que nos permite traballar comodamente con datos estruturados, como táboas.

# Crear un DataFrame con datos
data = pd.DataFrame({
    'Idade': [10, 12, 14, 15, 17],  # Unha lista de idades.
    'Altura': [140, 145, 150, 155, 160]  # Unha lista de alturas correspondentes ás idades.
})
# Creamos un DataFrame (táboa de datos) usando pandas. Este DataFrame ten dúas columnas: "Idade" e "Altura".
# Cada valor na columna "Idade" está asociado cun valor na columna "Altura".

# Crear o gráfico
sns.scatterplot(data=data, x='Idade', y='Altura')
# Usamos Seaborn para crear un gráfico de dispersión.
# Argumentos:
# - `data=data`: Usamos o DataFrame que creamos como fonte de datos.
# - `x='Idade'`: Indicamos que a columna "Idade" será usada como eixo X (horizontal).
# - `y='Altura'`: Indicamos que a columna "Altura" será usada como eixo Y (vertical).
# Isto xera puntos no gráfico que representan a relación entre idade e altura.

plt.title('Relación entre idade e altura')
# Engadimos un título ao gráfico para describir o que representa.

plt.show()
# Amosamos o gráfico na pantalla. É a instrución que realmente mostra a visualización.

    

Actividade 4: Comparativa Matplotlib e Seaborn

Obxectivo: Aprender as melloras de Seaborn con respecto a Matplotlib.
Instrución: Representar 2 gráficos con datos de Idade, peso e altura, un con cada librería.

Resultado actividade
Creación propia. Resultado actividade (CC BY-SA)

Código Python: Idade, altura e peso con Matplotlib e Seaborn

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

# Crear o DataFrame cos datos
data = pd.DataFrame({
    'Edad': [10, 12, 14, 15, 17, 30, 40, 50, 60, 70],  # Edades
    'Altura': [140, 145, 150, 155, 160, 170, 175, 165, 160, 155],  # Alturas
    'Peso': [40, 45, 50, 55, 60, 70, 75, 72, 68, 65]  # Pesos en kg
})

# Crear unha figura con dous subgráficos
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 7))

# Gráfico con Matplotlib
ax1.scatter(data['Edad'], data['Altura'], s=data['Peso']*3, c='red', alpha=0.6, edgecolor='black')
ax1.set_title('Gráfico con Matplotlib', fontsize=16, fontweight='bold')
ax1.set_xlabel('Edad (anos)', fontsize=12)
ax1.set_ylabel('Altura (cm)', fontsize=12)
ax1.grid(color='gray', linestyle='--', linewidth=0.5)

# Gráfico con Seaborn
sns.scatterplot(
    data=data, 
    x='Edad', 
    y='Altura', 
    size='Peso', 
    hue='Peso', 
    palette='viridis', 
    sizes=(50, 200), 
    ax=ax2
)
ax2.set_title('Gráfico con Seaborn', fontsize=16, fontweight='bold')
ax2.set_xlabel('Edad (anos)', fontsize=12)
ax2.set_ylabel('Altura (cm)', fontsize=12)
ax2.grid(color='gray', linestyle='--', linewidth=0.5)

# Engadir unha barra de cores ao gráfico de Seaborn
norm = plt.Normalize(data['Peso'].min(), data['Peso'].max())
sm = plt.cm.ScalarMappable(cmap='viridis', norm=norm)
sm.set_array([])
fig.colorbar(sm, ax=ax2, label='Peso (kg)')

# Mostrar os gráficos
plt.tight_layout()
plt.show()