Saltar al contenido

¿Cómo agregar una línea basada en la pendiente y la intersección en Matplotlib?

Después de consultar con especialistas en esta materia, programadores de varias ramas y maestros dimos con la solución al problema y la plasmamos en este post.

Solución:

Muchas de estas soluciones se centran en agregar una línea al gráfico que se ajuste a los datos. Aquí hay una solución simple para agregar una línea arbitraria a la gráfica basada en una pendiente y una intersección.

import matplotlib.pyplot as plt 
import numpy as np    

def abline(slope, intercept):
    """Plot a line from slope and intercept"""
    axes = plt.gca()
    x_vals = np.array(axes.get_xlim())
    y_vals = intercept + slope * x_vals
    plt.plot(x_vals, y_vals, '--')

Sé que esta pregunta tiene un par de años, pero como no hay una respuesta aceptada, agregaré lo que me funcione.

Podría trazar los valores en su gráfico y luego generar otro conjunto de valores para las coordenadas de la línea de mejor ajuste y trazarlo sobre su gráfico original. Por ejemplo, vea el siguiente código:

import matplotlib.pyplot as plt
import numpy as np

# Some dummy data
x = [1, 2, 3, 4, 5, 6, 7]
y = [1, 3, 3, 2, 5, 7, 9]

# Find the slope and intercept of the best fit line
slope, intercept = np.polyfit(x, y, 1)

# Create a list of values in the best fit line
abline_values = [slope * i + intercept for i in x]

# Plot the best fit line over the actual values
plt.plot(x, y, '--')
plt.plot(x, abline_values, 'b')
plt.title(slope)
plt.show()

X = np.array([1, 2, 3, 4, 5, 6, 7])
Y = np.array([1.1,1.9,3.0,4.1,5.2,5.8,7])

scatter (X,Y)
slope, intercept = np.polyfit(X, Y, 1)
plot(X, X*slope + intercept, 'r')

Aquí tienes las reseñas y valoraciones

Si haces scroll puedes encontrar las crónicas de otros desarrolladores, tú asimismo tienes el poder mostrar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *