Crear línea de tendencia en Matplotlib

Salman Mehmood 20 junio 2023
Crear línea de tendencia en Matplotlib

En este artículo de demostración, veremos la breve demostración sobre las líneas de tendencia y también veremos cómo crear una línea de tendencia lineal en un gráfico en Matplotlib.

Utilice el método polyfit() para crear una línea de tendencia en Matplotlib

La línea de tendencia es simplemente una línea que dibujamos a través de los puntos de datos en el gráfico. Para estimar la tendencia y las usamos para intentar hacer predicciones.

Comencemos con la importación de las bibliotecas requeridas en Python.

import matplotlib.pyplot as plot
import numpy as np

Tenemos un vector de datos de la temperatura en Celsius y un vector de datos de un voltaje. Puede importarlo fácilmente a su código si tiene una hoja de cálculo de Excel, un archivo de texto o un archivo CSV.

En nuestro caso, solo escribimos siete puntos de datos manualmente. Vamos a graficar la temperatura en función del voltaje.

T = [20, 30, 40, 50, 60, 75, 100]
V = [1.02, 1.53, 2.05, 2.55, 3.07, 3.56, 4.05]

Código fuente:

import matplotlib.pyplot as plot

# Data vectors
T = [20, 30, 40, 50, 60, 75, 100]
V = [1.02, 1.53, 2.05, 2.55, 3.07, 3.56, 4.05]

# Plot data
plot.plot(V, T, "b*")
plot.xlabel("Voltage(V)")
plot.ylabel("Temp(C)")
plot.grid()
plot.show()

Producción:

crear puntos de datos en matplotlib

Ahora vamos a crear una línea de tendencia. Calculemos la línea de tendencia usando el método polyfit() de numpy, y este método creará una línea de ajuste polinomial.

El método polyfit() acepta el eje x, el eje y o el lado de las coordenadas X e Y. El tercer parámetro acepta el orden, y le pasaremos 1, 1 obviamente es lineal, por lo que 2 sería cuadrático.

coeff = np.polyfit(V, T, 1)  # 1=linear

Guarde el primer elemento de ese coeficiente en la variable m, luego b es el intercepto en y.

m = coeff[0]
b = coeff[1]

Trace una línea de tendencia usando la siguiente sintaxis. Necesitamos llamar al método linspace(), y este método toma algunos puntos iniciales y finales con cien puntos de datos.

La variable Ttrend almacena una ecuación, y esta ecuación ayudará a crear una línea de tendencia.

Vtrend = np.linspace(V[0], V[-1], 100)
Ttrend = m * Vtrend + b

Código fuente:

import matplotlib.pyplot as plot
import numpy as np

# Data vectors
T = [20, 30, 40, 50, 60, 75, 100]
V = [1.02, 1.53, 2.05, 2.55, 3.07, 3.56, 4.05]

# Plot data
plot.plot(V, T, "b*")
plot.xlabel("Voltage(V)")
plot.ylabel("Temp(C)")
plot.grid()

# Compute the trendline
coeff = np.polyfit(V, T, 1)  # 1=linear

m = coeff[0]
b = coeff[1]

Vtrend = np.linspace(V[0], V[-1], 100)
Ttrend = m * Vtrend + b
plot.plot(Vtrend, Ttrend, "r")
plot.show()

Producción:

crear una línea de tendencia usando el método polyfit() en matplotlib

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn