No tienes acceso a esta clase

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

Introducción a Matplotlib gráfico de líneas y dispersión

23/32
Recursos

Aportes 8

Preguntas 1

Ordenar por:

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

📝Mis apuntes de la clase **Matplitlib es:** * Herramienta para visualización de datos. * Estándar para la creación de gráficos. * Integración con Numpy y Pandas. Ésta es una librería escrita en python, está enfocada en la visualización de datos por medio de gráficos 2D tales como: * Barras * Líneas * Pie * Dispersión Entre otras. **Gráfico de líneas**: Muestra tendencias y cambios en los datos a lo largo del tiempo. **Ejemplo**: Analizar las ventas de un determinado producto a lo largo del tiempo, de esta manera identificamos como suben o bajan las ventas en un determinado periodo. ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt months = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio"] sales = np.random.randint(50, 200, 6) # Configuración del gráfico plt.figure(figsize=(10,8)) plt.plot( months, sales, marker="o", color="blue" ) plt.title("Ejemplo de ventas mensuales") plt.xlabel("Meses") plt.ylabel("Ventas en miles de unidades") plt.show() ``` ![](https://res.cloudinary.com/dmwsbri4c/image/upload/v1727210783/Grafico_lineas_csokl7.png) **Gráfico de dispersión**: Muestra la relación entre dos variables, permite encontrar patrones, agrupaciones o puntos atípicos en los datos. **Ejemplo**: Analizar la relación entre las horas de estudio y las calificaciones obtenidas por los estudiantes; de esta forma podemos determinar si hay una correlación entre las dos variables (a más horas de estudio -> más alta la calificación). ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt # Relación entre horas de esestudio y calidificaciones hours = [0,1,2,3,4,5,6,7,8] exam = np.random.randint(50,100, 9) plt.figure(figsize=(10,8)) plt.scatter( x=hours, y=exam, marker="o" ) plt.title("Ejemplo: Relación entre horas de estudio y calificacines") plt.xlabel("Horas de estudio") plt.ylabel("Calificación obtenida") plt.show() ``` ![](https://res.cloudinary.com/dmwsbri4c/image/upload/v1727210783/Grafico_dispersion_ocixh9.png) Espero este aporte les sea de utilidad 💜
🟢 **Diagrama de dispersión con diferentes tamaños** Los diagramas de dispersión no solo muestran la relación entre dos variables, sino que también pueden utilizar el tamaño de los puntos para representar una **tercera dimensión de los datos**. Este tipo de gráfico es especialmente útil cuando queremos visualizar cómo **varía una medida específica en función de dos variables independientes**, facilitando la comparación entre datos al incorporar el tamaño de los puntos como un indicador adicional. ![](https://static.platzi.com/media/user_upload/image-372d4a04-aa8a-457b-a074-e793bd77a750.jpg) Además, los diagramas de dispersión con tamaños variables pueden ayudar a **medir la densidad y la distribución de los datos**, proporcionando una visión más completa de la magnitud y la frecuencia de las observaciones. Te comparto el código para que lo añadas a tu arsenal de herramientas de análisis de datos. ```python ## Data Aleatoria con semilla 0 np.random.seed(0) # Recuerda que la semilla provoca que los datos # arrojen el mismo resultado aunque sean aleatorios N = 50 x = np.random.rand(N) y = np.random.rand(N) sizes = (30 * np.random.rand(N)) ** 2 colors = np.random.rand(N) ## Scatter Plot plt.scatter(x,y,s=sizes, c=colors, alpha=0.5, marker='o') plt.colorbar() #Para mostrar la barra de colores plt.show() ``` **¡Nunca pares de aprender!** 🚀🚀
### **1. GRÁFICO DE LÍNEAS** #### **Código:** import numpy as np import matplotlib.pyplot as plt month = np.array(\['E', 'F', 'M', 'A', 'Ma']) sales = np.array(\[20, 25, 30, 28, 35]) \# Configurar el tamaño del gráfico plt.figure(figsize=(8, 6)) \# Crear el gráfico plt.plot(month, sales, marker='o', color='blue') plt.title('Ventas mensuales de un producto') plt.xlabel('Meses') plt.ylabel('Ventas en miles de unidades') plt.show() #### **Descripción del Código:** * **Importaciones**: Se importan las librerías necesarias, numpy y matplotlib.pyplot. * **Creación de Datos**: * month: Un arreglo que representa los meses ("E", "F", "M", "A", "Ma"). * sales: Un arreglo que representa las ventas en miles para cada mes correspondiente. * **Configuración del Gráfico**: Se establece un tamaño de gráfico de 8x6 pulgadas usando plt.figure. * **Graficación**: * Se crea un gráfico de líneas con marcadores ('o') y una línea azul (color='blue'). * Se añaden títulos y etiquetas para mayor claridad: el título del gráfico es "Ventas mensuales de un producto," el eje x está etiquetado como "Meses," y el eje y como "Ventas en miles de unidades." #### **Salida:** El resultado es un gráfico de líneas donde: * El eje x representa los meses (E, F, M, A, Ma). * El eje y representa las ventas en miles de unidades. * Los puntos de datos están conectados con una línea azul, y cada punto está marcado con un círculo azul. ### **2. 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 = \[55, 60, 65, 70, 75, 80, 85] plt.scatter(hours, exam, color='green') plt.title('Relación entre horas estudiadas y el puntaje') plt.xlabel('Horas') plt.ylabel('Puntaje') plt.show() #### **Descripción del Código:** * **Configuración del Gráfico**: El tamaño del gráfico se establece en 8x6 pulgadas. * **Creación de Datos**: * hours: Una lista de horas estudiadas (de 2 a 8 horas). * exam: Una lista de calificaciones obtenidas correspondientes a las horas estudiadas. * **Graficación**: * Se crea un gráfico de dispersión con marcadores verdes (color='green'). * Se añaden títulos y etiquetas: el título del gráfico es "Relación entre horas estudiadas y el puntaje," el eje x está etiquetado como "Horas," y el eje y como "Puntaje." #### **Salida:** El resultado es un gráfico de dispersión donde: * El eje x representa las horas estudiadas. * El eje y representa las calificaciones del examen. * Cada punto de datos (horas, calificaciones) se grafica como un punto verde, mostrando una relación positiva entre las horas de estudio y las calificaciones.
# Tipos de Marker Comunes 'o': Círculo Representa un marcador en forma de círculo. 's': Cuadrado Representa un marcador en forma de cuadrado. 'D': Diamante Representa un marcador en forma de diamante. '^': Triángulo hacia arriba Representa un marcador en forma de triángulo apuntando hacia arriba. 'v': Triángulo hacia abajo Representa un marcador en forma de triángulo apuntando hacia abajo. '>': Triángulo hacia la derecha Representa un marcador en forma de triángulo apuntando hacia la derecha. '<': Triángulo hacia la izquierda Representa un marcador en forma de triángulo apuntando hacia la izquierda. 'p': Pentágono Representa un marcador en forma de pentágono. '\*': Estrella Representa un marcador en forma de estrella. 'H': Hexágono Representa un marcador en forma de hexágono. 'X': Cruz (marca de multiplicación) Representa un marcador en forma de cruz. '+': Más Representa un marcador en forma de signo de más. '|': Línea vertical Representa un marcador en forma de línea vertical. '\_': Línea horizontal Representa un marcador en forma de línea horizontal.
Hola month = np.array(\["enero", "febrero","marzo","junio", "julio"])sales =np.array (\[20,25,30,28,35]) \#configurar el tamaño del grafico plt.figure(figsize=(8,6)) \#crear el grafico de barrasplt.plot(month, sales, marker="o", color= "blue")plt.title("Ventas mensuales de un producto")plt.xlabel("Meses")plt.ylabel("Ventas")plt.grid(True)plt.show() Agregando plt.grip(True), te permitira tener una maya que te muestra mas detalladamente donde esta el punto ![](https://static.platzi.com/media/user_upload/image-b5d0acb1-f2b5-4a82-aec9-35f959fc286f.jpg)
**¿Qué es Matplotlib?** Matplotlib es una biblioteca de Python utilizada para crear gráficos y visualizaciones en 2D. Es una herramienta poderosa y flexible para generar una amplia variedad de gráficos, desde simples gráficos de líneas y barras hasta gráficos más complejos como histogramas y gráficos de dispersión.
Me puse a experimentar con este código: `import matplotlib.pyplot as plt` `datos = np.random.randint(1, 100, size=45)` `media = np.mean(datos)mediana = np.median(datos)` `plt.scatter(range(len(datos)), datos, color='blue', label='Datos')plt.axhline(y=media, color='red', linestyle='--', label=f'Media ({round(media, 2)})')plt.axhline(y=mediana, color='green', linestyle='--', label=f'Mediana ({mediana})')` `plt.title('Scatter Plot de Datos Aleatorios')plt.xlabel('Índice')plt.ylabel('Valor')` `plt.legend(loc='upper left', bbox_to_anchor=(1, 1))` `plt.tight_layout()` `plt.show()` ![](https://static.platzi.com/media/user_upload/image-7c6d80e1-47d9-425f-8bb8-01c523952296.jpg)
Para crear gráficos de líneas y de dispersión utilizando `Matplotlib`, puedes seguir este ejemplo básico. Vamos a usar dos gráficos en uno, un gráfico de líneas y uno de dispersión (scatter) para visualizar mejor cómo se distribuyen los puntos y cómo se comporta una tendencia en los datos. \### Ejemplo básico de gráfico de líneas y de dispersión ```python import matplotlib.pyplot as plt import numpy as np \# Crear datos de ejemplo x = np.linspace(0, 10, 100) y = np.sin(x) \# Crear la figura y los ejes plt.figure(figsize=(8, 6)) \# Graficar la línea plt.plot(x, y, label='Seno de x', color='b', linestyle='-', linewidth=2) \# Graficar los puntos de dispersión plt.scatter(x, y, label='Puntos', color='r', marker='o') \# Añadir etiquetas y título plt.title('Gráfico de Líneas y Dispersión') plt.xlabel('Eje X') plt.ylabel('Eje Y') \# Añadir leyenda plt.legend() \# Mostrar el gráfico plt.show() ``` \### Explicación: 1\. \*\*Datos de ejemplo\*\*: Se generan datos de `x` usando `np.linspace` y `y` con la función seno `np.sin(x)`. 2\. \*\*Gráfico de línea\*\*: Se usa `plt.plot()` para crear el gráfico de líneas, con opciones de color (`color='b'`), estilo de línea (`linestyle='-'`), y grosor (`linewidth=2`). 3\. \*\*Gráfico de dispersión\*\*: Se usa `plt.scatter()` para añadir los puntos de dispersión, con color rojo (`color='r'`) y forma de círculo (`marker='o'`). 4\. \*\*Leyenda y etiquetas\*\*: Añadimos título, etiquetas a los ejes, y una leyenda. Este es un ejemplo básico, pero puedes personalizar aún más con diferentes opciones de color, estilos de marcadores y etiquetas.