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.
O programa inclúe explicacións detalladas nos comentarios para que comprendas cada paso.
Executandoo en Colab, podes probar a crear o gráfico.
Non te preocupes por comprender o programa totalmente, só de entender o que fai.
Podes xogar cos datos (x,y), probar a cambiar os nomes de eixes ou gráfico.
Explicación dos métodos de Matplotlib:
import matplotlib.pyplot as plt: Impórtase a librería e se lle pon un nome máis curto, só para simplificar
Definir os datos mediante listas : x = [1, 2, 3, 4] e y = [10, 20, 25, 30]
Xerar o gráfico de liñas co comando plt.plot(x, y), que une os puntos definidos polas listas con liñas.
Personalizar o gráfico:
Título: Usar plt.title('O meu primeiro gráfico de liñas') para indicar o significado da representación.
Etiquetas: Coas funcións plt.xlabel('Eixo X') e plt.ylabel('Eixo Y'), podemos describir os valores dos eixos.
Mostrar o gráfico na pantalla utilizando plt.show(), para visualizar a representación gráfica dos datos.
Posibles actividades adicionais:
Crear outros datos y2=[30, 20, 35, 90] por exemplo e crear outra liña na mesma gráfica con plt.plot(x, y2), o mesmo pero con outros datos x.
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
O programa inclúe explicacións detalladas nos comentarios para que comprendas cada paso.
Executandoo en Colab, podes probar distintos atributos para personalizar a gráfica.
Non te preocupes por comprender o programa totalmente, só de entender o que fai.
Podes xogar cos distintos atributos e cores e cambialos.
Explicación dos métodos de Matplotlib:
plt.plot(x, y, color='purple', linestyle='--', marker='o', label='Ventas') para definir a cor, o estilo da liña e o tipo de marcador.
plt.title('Gráfico de Ventas Semanales', fontsize=16, fontweight='bold', color='blue') establece o título cun tamaño maior, en negrita e de cor azul.
plt.xlabel('Semana', fontsize=12, color='green') e plt.ylabel('Ingresos (€)', fontsize=12, color='green') engaden etiquetas cos nomes dos eixos, personalizando o tamaño e a cor da fonte.
plt.grid(color='pink', linestyle=':', linewidth=0.9) que engade e configura unha grella de fondo de cor rosa, estilo punteado e liñas finas.
Posibles actividades adicionais:
Investiga e proba a modificar os estilos da liña e marcadores:
Probar diferentes cores (red, blue, orange, etc.).
Usar distintos estilos como 'dotted', 'solid' e 'dashdot'.
Cambiar os marcadores para 's' (cadrados), '*' (estrela), etc.
Engadir unha segunda liña ao gráfico:
Crear unha nova lista de datos y2 = [5, 15, 22, 28].
Representar esta nova serie de datos con outro estilo e cor:
Ajustar a transparencia da cuadrícula engadindo alpha=0.5.
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.
O programa inclue explicacións detalladas nos comentarios para que comprendas cada paso.
Executandoo en Colab, podes probar a realizar unha gráfica de puntos coa relación entre idade e altura.
Non te preocupes por comprender o programa totalmente, só de entender o que fai.
Podes xogar coa instrución de datos e comprobar os cambios.
Explicación dos métodos de Seaborn:
import seaborn as sns → Para crear gráficos estatísticos. import pandas as pd → Para manexar datos estruturados como táboas.
pd.DataFrame() para crear unha táboa con dúas columnas: 'Idade': Lista de idades. 'Altura': Lista de alturas correspondentes ás idades.
Crear o gráfico de dispersión con sns.scatterplot():
data=data → Indica o DataFrame a empregar.
x='Idade' → Define o eixo X (idade).
y='Altura' → Define o eixo Y (altura).
Posibles actividades adicionais:
Modificar a cor dos puntos:
Usar o argumento hue para asignar unha cor diferente a cada idade: sns.scatterplot(data=data, x='Idade', y='Altura', hue='Idade', palette='coolwarm')
Engadir un tamaño variable aos puntos:
Usar size='Idade' para que os puntos máis grandes representen idades maiores: sns.scatterplot(data=data, x='Idade', y='Altura', size='Idade')
Incluir unha liña de tendencia:
Empregar sns.regplot() para engadir unha recta de regresión que mostre a tendencia entre idade e altura: sns.regplot(data=data, x='Idade', y='Altura')
Crear un segundo gráfico ou aumentar os datos:
Modificar o DataFrame para engadir máis idades e alturas.
Comparar os resultados obtidos con distintas mostras de datos.
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.
O programa inclue explicacións detalladas nos comentarios para que comprendas cada paso.
Executandoo en Colab, podes comprobar as diferencias entre ambas librerías.
Non te preocupes por comprender o programa totalmente, só de entender o que fai.
Podes xogar coa instrución de datos e cambialos ou probar distintas cores .
Explicación dos métodos de Matplotlib e Seaborn:
A función plt.subplots(1, 2) crea unha figura con dúas columnas (subgráficos) para comparar os resultados de Matplotlib e Seaborn unha ó lado da outra.
Gráfico en Matplotlib:
ax1.scatter: Crea un gráfico de dispersión. O tamaño dos puntos (s=data['Peso']*3) e as cores vermellas (c='red') están personalizados. Os puntos son máis grandes, canto máis peso.
alpha=0.6: Configura a transparencia dos puntos.Vai de 0 a 1, proba a cambialo.
edgecolor='black': Engade bordos negros aos puntos.
Gráfico en Seaborn:
sns.scatterplot: Crea un gráfico de dispersión cunha paleta de cores específica (palette='viridis).
size e hue: Personalizan o tamaño(size) e cores(hue) dos puntos segundo os valores de peso.
Barra de cores:
norm = plt.Normalize(data['Peso'].min(), data['Peso'].max()): Normaliza os valores da columna Peso no DataFrame. É dicir, axusta os datos a un rango específico para representar as cores do gráfico segundo os valores de peso mínimo e máximo.
sm = plt.cm.ScalarMappable(cmap='viridis', norm=norm): Crea un obxecto "mappable" que vincula os valores normalizados (norm) coa paleta de cores seleccionada (viridis). Este obxecto será usado para a barra de cores.
ig.colorbar(sm, ax=ax2, label='Peso (kg'): Engade unha barra de cores ao subeixo ax2 que reflicte os valores do peso en relación á paleta de cores. Ademais, a etiqueta da barra de cores será "Peso (kg)", indicando o atributo representado.
Matplotlib é máis básico e precisa máis código para personalizar os gráficos. Seaborn, necesitando a Matplotlib, fai gráficos máis vistosos e personalizados con menos código.
Posibles actividades adicionais:
Cambiar a paleta de cores: Modifica palette='viridis' por palette='coolwarm' ,palette='pastel', palette='Blues' ou outras paletas dispoñibles en Seaborn.
Modificar tamaños dos puntos: Cambia o rango en sizes=(50, 200) para ver puntos máis pequenos ou maiores.
Alterar o eixo x e y: No gráfico de Matplotlib, proba cambiar os datos de x='Edad' por outro atributo como Peso.
Modificar o estilo da grella: Proba cambiar grid=True por grid=False para eliminar a grella ou usar diferentes estilos con linestyle='-', linestyle=':', etc.
Cambiar o tamaño da figura: Ajusta o parámetro figsize=(16, 7) a valores máis grandes ou máis pequenos, como figsize=(10, 5).
Cambiar o rango de valores en sizes (Seaborn): Experimenta con tamaños maiores ou menores, como sizes=(10, 100) ou sizes=(100, 500).
Usar transparencia nos puntos: Engade o parámetro alpha=0.3 ou alpha=0.9 para variar a opacidade dos puntos.
Cambiar os títulos e etiquetas: Modifica o texto ou engade estilos diferentes con fontsize, fontweight='light', ou incluso outros idiomas para probar presentacións internacionais.
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()