Erstellen Sie eine Trendlinie in Matplotlib

Salman Mehmood 20 Juni 2023
Erstellen Sie eine Trendlinie in Matplotlib

In diesem Demo-Artikel sehen wir uns die kurze Demonstration zu Trendlinien an und sehen uns auch an, wie man in Matplotlib eine lineare Trendlinie in einem Diagramm erstellt.

Verwenden Sie die polyfit()-Methode, um eine Trendlinie in Matplotlib zu erstellen

Die Trendlinie ist einfach eine Linie, die wir durch die Datenpunkte im Diagramm ziehen. Um den Trend abzuschätzen und wir verwenden sie, um zu versuchen, Vorhersagen zu treffen.

Beginnen wir mit dem Importieren der erforderlichen Bibliotheken in Python.

import matplotlib.pyplot as plot
import numpy as np

Wir haben einen Datenvektor der Temperatur in Celsius und einen Datenvektor einer Spannung. Sie können es einfach in Ihren Code importieren, wenn Sie eine Excel-Tabelle, eine Textdatei oder eine CSV-Datei haben.

In unserem Fall haben wir nur sieben Datenpunkte manuell eingegeben. Wir werden die Temperatur als Funktion der Spannung darstellen.

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

Quellcode:

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()

Ausgang:

Erstellen Sie Datenpunkte in Matplotlib

Jetzt erstellen wir eine Trendlinie. Lassen Sie uns die Trendlinie mit der Methode polyfit() von numpy berechnen, und diese Methode wird eine polynomische Anpassungslinie erstellen.

Die Methode polyfit() akzeptiert die x-Achse, die y-Achse oder die Seite der X- und Y-Koordinaten. Der dritte Parameter akzeptiert die Reihenfolge, und wir übergeben sie an 1, 1 ist offensichtlich linear, also wäre 2 quadratisch.

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

Speichern Sie das erste Element dieses Koeffizienten in der Variablen m, dann ist b der y-Achsenabschnitt.

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

Zeichnen Sie eine Trendlinie mit der folgenden Syntax. Wir müssen die Methode linspace() aufrufen, und diese Methode nimmt einige Anfangs- und Endpunkte mit hundert Datenpunkten.

Die Variable Ttrend speichert eine Gleichung, und diese Gleichung hilft beim Erstellen einer Trendlinie.

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

Quellcode:

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()

Ausgang:

Erstellen Sie eine Trendlinie mit der Methode polyfit() in 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