Matplotlib Plotting

Matplotlib Logo



📍 Plotting x and y points

📝 La función `plot()` en Pyplot se utiliza fundamentalmente para dibujar puntos en un diagrama. Por defecto, si solo proporcionas puntos, Matplotlib los conectará con líneas. 📈

Para especificar las coordenadas de los puntos que quieres trazar, necesitas pasar dos argumentos a la función `plot()`:

  • El primer argumento es una **lista o un array** que contiene las coordenadas de los puntos en el **eje *x***.
  • El segundo argumento es una **lista o un array** que contiene las coordenadas de los puntos en el **eje *y***.

Ambas listas o arrays deben tener la misma longitud, ya que los elementos correspondientes se emparejarán para formar las coordenadas de cada punto.

Por ejemplo, para trazar dos puntos: uno en la coordenada (1, 3) y otro en la coordenada (8, 15), harías lo siguiente:


import matplotlib.pyplot as plt
import numpy as np

xpoints = np.array([1, 8])
ypoints = np.array([3, 15])

plt.plot(xpoints, ypoints)
plt.show()
            

Este código tomará el primer elemento de `xpoints` (que es 1) y el primer elemento de `ypoints` (que es 3) para trazar el primer punto en (1, 3). Luego, tomará el segundo elemento de `xpoints` (que es 8) y el segundo elemento de `ypoints` (que es 15) para trazar el segundo punto en (8, 15). Finalmente, como es el comportamiento predeterminado, Matplotlib dibujará una línea conectando estos dos puntos.

Puedes trazar tantos puntos como necesites, simplemente asegurándote de que las listas o arrays de coordenadas *x* e *y* tengan la misma cantidad de elementos.

**¿Qué pasa si solo proporcionas una lista de números a la función `plot()`?** En este caso, Matplotlib asumirá que esta lista representa los valores del eje *y*, y automáticamente generará los valores correspondientes para el eje *x*, comenzando desde 0.


import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([3, 8, 1, 10, 5, 7])

plt.plot(ypoints)
plt.show()
            

Aquí, los puntos trazados tendrían las coordenadas (0, 3), (1, 8), (2, 1), (3, 10), (4, 5) y (5, 7).

💻 Código de Ejemplo: Trazado de puntos x e y


# Ejemplo 1: Trazar dos puntos con coordenadas x e y
import matplotlib.pyplot as plt
import numpy as np

x1 = np.array([1, 8])
y1 = np.array([3, 15])
plt.plot(x1, y1)
plt.show()

# Ejemplo 2: Trazar múltiples puntos
x2 = np.array([1, 2, 6, 8])
y2 = np.array([3, 8, 1, 10])
plt.plot(x2, y2)
plt.show()

# Ejemplo 3: Trazar puntos solo con valores y (x se genera automáticamente)
y3 = np.array([3, 8, 1, 10, 5, 7])
plt.plot(y3)
plt.show()
            

📊 Ejemplo Visual: Gráficos resultantes

Gráfico de dos puntos conectados por una línea Gráfico de múltiples puntos conectados por una línea Gráfico basado en valores y con valores x automáticos

👆 Aquí puedes observar los resultados de los diferentes ejemplos de código. El primero muestra una línea entre dos puntos, el segundo una línea que conecta varios puntos, y el tercero una línea trazada a partir de solo los valores del eje *y*, con los valores del eje *x* generados automáticamente.

🔢 Multiple Points

✍️ Como vimos en el tema anterior, la función plot() puede trazar múltiples puntos con una sola llamada. Simplemente necesitas proporcionar arrays (o listas) con las coordenadas *x* e *y* correspondientes. 📊

La clave es que **ambos arrays deben tener la misma longitud**. Matplotlib emparejará el elemento en la posición *i* del array de las *x* con el elemento en la posición *i* del array de las *y* para determinar las coordenadas del *i*-ésimo punto.

Considera este ejemplo en Python:


import matplotlib.pyplot as plt
import numpy as np

x1 = np.array([1, 3, 5, 7])
y1 = np.array([5, 8, 2, 9])

x2 = np.array([2, 4, 6, 8])
y2 = np.array([3, 6, 7, 4])

plt.plot(x1, y1)
plt.plot(x2, y2)
plt.xlabel("Eje X")
plt.ylabel("Eje Y")
plt.title("Múltiples líneas en un gráfico")
plt.show()

📊 Ejemplo Visual Interactivo (Generado con JavaScript)

👆 Este gráfico, generado directamente en tu navegador usando JavaScript (con la librería Chart.js), visualiza los mismos datos del ejemplo de Python. Muestra dos líneas diferentes, cada una representando un conjunto de puntos definidos por sus respectivas coordenadas *x* e *y*.

➡️ Default X-Points

💡 Como anticipamos brevemente, si solo proporcionas una lista o array de valores a la función plot(), Matplotlib interpretará estos valores como las coordenadas del **eje *y***. En este escenario, generará automáticamente las coordenadas correspondientes para el **eje *x***. 🔢

Los valores predeterminados para el eje *x* comenzarán en 0 y se incrementarán secuencialmente en 1 para cada punto en el eje *y*. La longitud del eje *x* será la misma que la longitud del array de valores *y* proporcionado.

Considera el siguiente ejemplo donde solo proporcionamos valores para el eje *y*:


import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([6, 2, 9, 4, 7, 5])

plt.plot(ypoints)
plt.show()
            

En este caso, Matplotlib utilizará los valores `[6, 2, 9, 4, 7, 5]` como las coordenadas *y*. Para las coordenadas *x*, generará automáticamente una secuencia que comienza en 0 y tiene la misma cantidad de elementos que `ypoints`, es decir, `[0, 1, 2, 3, 4, 5]`. Por lo tanto, los puntos trazados serán: (0, 6), (1, 2), (2, 9), (3, 4), (4, 7) y (5, 5).

Esta funcionalidad es útil cuando solo te interesa la tendencia de los valores *y* a lo largo de una serie, y la escala del eje *x* (un índice o una secuencia temporal uniforme) no es tu principal preocupación.

💻 Código de Ejemplo: Trazado con valores y predeterminados para x


import matplotlib.pyplot as plt
import numpy as np

# Solo proporcionamos los valores del eje y
sales = np.array([120, 150, 110, 180, 140, 160])

plt.plot(sales)
plt.xlabel("Mes (predeterminado)")
plt.ylabel("Ventas")
plt.title("Ventas Mensuales (eje x predeterminado)")
plt.show()
            

📊 Ejemplo Visual Interactivo (Generado con JavaScript)

👆 Este gráfico, generado con JavaScript, ilustra cómo Matplotlib traza los puntos cuando solo se proporcionan los valores del eje *y*. El eje *x* se genera automáticamente, comenzando en 0.




Publicar un comentario

0 Comentarios