No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Personalización de Gráficos en Matplotlib

24/32
Recursos

Vamos a explorar cómo crear gráficos de líneas utilizando la biblioteca matplotlib en Python.

El objetivo es visualizar la relación entre las horas estudiadas y los puntajes obtenidos por dos estudiantes en un examen. A lo largo de este ejercicio, aprenderás a configurar el tamaño del gráfico, trazar múltiples series de datos, personalizar las líneas y marcadores, y agregar anotaciones para destacar puntos importantes en la visualización.

También existe personalizaciones que podemos hacer con la escala que se maneja en X y Y o si queremos apuntar a algún punto específico como vemos en el siguiente ejercicio

import matplotlib.pyplot as plt

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

hours = [2,3,4,5,6,7,8]
exam_scores_student_1 = [55, 60, 65, 70, 75, 80, 85]
exam_scores_student_2 = [50, 58, 63, 69, 74, 78, 83]

plt.plot(hours, exam_scores_student_1, marker='o', color='green', linestyle='-', linewidth = 2 , label = 'Estudiante 1')
plt.plot(hours, exam_scores_student_2, marker='s', color='red', linestyle='--',linewidth = 2, label = 'Estudiante 2')

# Añadir anotación en un punto específico
plt.annotate('Mejora significativa', xy=(5, 70), xytext=(6, 60),
             arrowprops=dict(facecolor='black', shrink=0.05))

# Escalar los ejes para ajustar mejor los datos
plt.ylim(50, 90)  # Escala del eje y
plt.xlim(0, 8)    # Escala del eje x

plt.title('Relación entre horas estudiadas y el puntaje de dos estudiantes')
plt.xlabel('Horas')
plt.ylabel('Puntaje')
#Añadir la leyenda de explicación
plt.legend()

plt.show()
  • plt.annotate(): Esta función se usa para añadir una anotación en un punto específico del gráfico. En este caso, estamos señalando una “Mejora significativa” en el puntaje del “Estudiante 1” cuando estudia 5 horas, con una flecha que apunta al punto en el gráfico.
  • plt.ylim() y plt.xlim(): Estas funciones permiten ajustar las escalas de los ejes para que los datos se presenten de manera más clara. Aquí, el eje y se limita a un rango de 50 a 90 puntos y el eje x de 2 a 8 horas, para enfocar mejor la visualización en los datos relevantes.

Este ejercicio demuestra cómo matplotlib puede ser una herramienta poderosa para visualizar datos de manera efectiva. Al personalizar los gráficos con anotaciones y ajustes de escala, podemos resaltar tendencias y puntos clave en los datos, facilitando así su interpretación.

Aportes 7

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Personalizar un gráfico es ideal para ponerle su sabor personal a un trabajo. Es ideal para que puedan decir "¡Ah! Sí, este se nota que lo hizo xyz." Siempre es bueno que lo identifiquen a uno por un trabajo bien hecho y personalizado.
**IMPORTANCIA DE PERSONALIZAR GRÁFICOS EN MARPLOTLIB** La personalización de gráficos en Matplotlib es crucial porque: 1. **Claridad**: Mejora la comprensión al añadir etiquetas, títulos y leyendas. 2. **Visualización**: Utiliza colores y estilos para distinguir datos y resaltar información importante. 3. **Estética**: Hace que los gráficos sean más atractivos y profesionales. 4. **Adaptabilidad**: Permite ajustar gráficos para diferentes formatos y audiencias. 5. **Enfoque**: Resalta los datos relevantes y reduce el ruido visual.
En \*\*Matplotlib\*\*, la personalización de gráficos es una de sus características más útiles. Puedes ajustar prácticamente todos los aspectos de un gráfico para hacerlo más claro y visualmente atractivo. A continuación se presentan varias formas de personalizar un gráfico: \### 1. \*\*Personalización de Estilos\*\* Puedes utilizar estilos predefinidos para cambiar rápidamente la apariencia general del gráfico. Para ver los estilos disponibles: ```python import matplotlib.pyplot as plt print(plt.style.available) ``` Para aplicar un estilo, puedes usar: ```python plt.style.use('ggplot') ``` \### 2. \*\*Títulos y Etiquetas\*\* Agregar títulos y etiquetas a los ejes mejora la comprensión del gráfico. ```python plt.title('Título del Gráfico') plt.xlabel('Etiqueta del Eje X') plt.ylabel('Etiqueta del Eje Y') ``` Puedes personalizar el tamaño y el color de las fuentes: ```python plt.title('Título', fontsize=14, color='blue') plt.xlabel('Eje X', fontsize=12) plt.ylabel('Eje Y', fontsize=12) ``` \### 3. \*\*Tamaños y Límites de los Ejes\*\* Controlar el rango de los ejes y ajustar la escala: ```python plt.xlim(0, 10) # Establece límites del eje X plt.ylim(0, 100) # Establece límites del eje Y ``` \### 4. \*\*Colores y Estilos de Líneas\*\* Puedes personalizar los colores y estilos de las líneas de tus gráficos. ```python plt.plot(x, y, color='green', linestyle='--', linewidth=2) ``` Algunos estilos de líneas disponibles: \- `'-'` : línea sólida \- `'--'` : línea discontinua \- `':'` : línea punteada \### 5. \*\*Marcadores\*\* Los marcadores resaltan puntos específicos en gráficos de dispersión o líneas. ```python plt.plot(x, y, marker='o', linestyle='-', color='red') ``` Marcadores comunes: \- `'o'`: círculo \- `'s'`: cuadrado \- `'\*'`: estrella \### 6. \*\*Leyendas\*\* Puedes agregar leyendas para describir lo que cada línea o gráfico representa. ```python plt.plot(x, y, label='Datos 1') plt.plot(x, z, label='Datos 2') plt.legend(loc='upper left') ``` \### 7. \*\*Anotaciones\*\* Añadir anotaciones a puntos específicos del gráfico para explicar mejor los datos. ```python plt.annotate('Punto clave', xy=(x\_point, y\_point), xytext=(x\_text, y\_text), arrowprops=dict(facecolor='black', shrink=0.05)) ``` \### 8. \*\*Subgráficos\*\* Puedes dividir tu área de gráficos en múltiples gráficos más pequeños. ```python fig, ax = plt.subplots(2, 2) # Crea una cuadrícula de 2x2 de gráficos ax\[0, 0].plot(x, y) ax\[1, 1].plot(x, z) ``` \### 9. \*\*Grillas\*\* Agregar una grilla ayuda a leer los valores en los gráficos. ```python plt.grid(True) # Activa la grilla plt.grid(color='gray', linestyle='--', linewidth=0.5) # Personalización ``` \### 10. \*\*Guardar Gráficos\*\* Puedes guardar tu gráfico en un archivo: ```python plt.savefig('grafico.png', dpi=300, bbox\_inches='tight') # Alta resolución ``` Estas son solo algunas de las formas en que puedes personalizar los gráficos en Matplotlib para hacerlos más informativos y estéticamente agradables.
`Top de los 10 países con más ventas en un gráfico de barras (sin contar el primero)` ```js import pandas as pd, numpy as np, matplotlib.pyplot as plt df = pd.read_csv('./pandas/online_retail.csv') country_count = df['Country'].value_counts() countries = pd.Series(country_count.index) countries = np.array(country_count.index) country_sales = np.array(country_count) plt.figure(figsize=(19.20,10.80)) plt.bar(countries[1:11], country_count[1:11], color='green') plt.title('Sales by country',fontsize=21) plt.xticks(fontsize=14) plt.yticks(fontsize=14) ``` ![](https://static.platzi.com/media/user_upload/image-45e1227f-581c-41ca-8f76-4aa53d03e382.jpg)
Matplotlib es una herramienta magnifica para ciencia de datos, y más cuando se la combina con numpy.
Les presento mi ejemplo practico ![](https://static.platzi.com/media/user_upload/image-5d258f31-7a78-49a5-a449-a921a61231d0.jpg)
#### **1. GRÁFICO DE DISPERSIÓN** ##### **Código:** import matplotlib.pyplot as plt \# Configurar el tamaño del gráfico plt.figure(figsize=(8, 6)) hours = \[2, 3, 4, 5, 6, 7, 8] exam\_scores\_student\_1 = \[55, 60, 65, 70, 75, 80, 85] exam\_scores\_student\_2 = \[50, 58, 63, 69, 74, 78, 83] \# Crear gráfico de dispersión de dos estudiantes plt.scatter(hours, exam\_scores\_student\_1, marker='o', color='green', label='Estudiante 1') plt.scatter(hours, exam\_scores\_student\_2, marker='s', color='red', label='Estudiante 2') plt.title('Relación entre horas estudiadas y el puntaje de dos estudiantes') plt.xlabel('Horas') plt.ylabel('Puntaje') plt.show() ##### **Descripción del Código:** * **Tamaño del gráfico**: Se establece un tamaño de 8x6 pulgadas con plt.figure. * **Datos**: * hours: Lista de horas de estudio (2 a 8 horas). * exam\_scores\_student\_1: Lista de puntajes del Estudiante 1. * exam\_scores\_student\_2: Lista de puntajes del Estudiante 2. * **Gráfica**: * Gráfico de dispersión con puntos verdes (color='green') para el Estudiante 1 y marcadores de tipo círculo (marker='o'). * Gráfico de dispersión con puntos rojos (color='red') para el Estudiante 2 y marcadores cuadrados (marker='s'). * Título y etiquetas para los ejes. ##### **Salida:** Un gráfico de dispersión muestra la relación entre las horas estudiadas y los puntajes de dos estudiantes: * El eje x representa las horas. * El eje y representa los puntajes. * Los datos están diferenciados por colores y formas de los marcadores. #### **2. GRÁFICO DE LÍNEAS** ##### **Código:** import matplotlib.pyplot as plt \# Configurar el tamaño del gráfico plt.figure(figsize=(8, 6)) hours = \[2, 3, 4, 5, 6, 7, 8] exam\_scores\_student\_1 = \[55, 60, 65, 70, 75, 80, 85] exam\_scores\_student\_2 = \[50, 58, 63, 69, 74, 78, 83] \# Crear gráfico de líneas para dos estudiantes plt.plot(hours, exam\_scores\_student\_1, marker='o', color='green', linestyle='-', linewidth=2, label='Estudiante 1') plt.plot(hours, exam\_scores\_student\_2, marker='s', color='red', linestyle='--', linewidth=2, label='Estudiante 2') plt.title('Relación entre horas estudiadas y el puntaje de dos estudiantes') plt.xlabel('Horas') plt.ylabel('Puntaje') plt.show() ##### **Descripción del Código:** * **Tamaño del gráfico**: Se establece un tamaño de 8x6 pulgadas con plt.figure. * **Datos**: * hours: Lista de horas de estudio (2 a 8 horas). * exam\_scores\_student\_1: Lista de puntajes del Estudiante 1. * exam\_scores\_student\_2: Lista de puntajes del Estudiante 2. * **Gráfica**: * Gráfico de líneas con puntos verdes (color='green') y líneas continuas (linestyle='-') para el Estudiante 1. * Gráfico de líneas con puntos rojos (color='red') y líneas discontinuas (linestyle='--') para el Estudiante 2. * Título y etiquetas para los ejes. ##### **Salida:** Un gráfico de líneas muestra la relación entre las horas estudiadas y los puntajes de dos estudiantes: * El eje x representa las horas. * El eje y representa los puntajes. * Las líneas y los puntos están diferenciados por colores y estilos.