馃搱 Matplotlib: Gu铆a B谩sica para Plotting en Python

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