33 lines
902 B
Python
33 lines
902 B
Python
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
from scipy.optimize import curve_fit
|
|
import pandas as pd
|
|
|
|
# Data from the chart
|
|
data = pd.read_csv(r'C:\Users\k28ad\OneDrive\Documents\sensor\oldData\data.csv')
|
|
x = data["x"].values
|
|
y = data["y"].values
|
|
|
|
# Define a possible fitting model (exponential fit in this case)
|
|
def exponential(x, a, b, c):
|
|
return a * np.exp(b * x) + c
|
|
|
|
# Perform the curve fitting
|
|
params, covariance = curve_fit(exponential, x, y)
|
|
|
|
# Plot the data and the fitting curve
|
|
x_fit = np.linspace(2, 20, 100)
|
|
y_fit = exponential(x_fit, *params)
|
|
|
|
plt.scatter(x, y, color='blue', label='Data points')
|
|
plt.plot(x_fit, y_fit, color='red', label='Exponential fit')
|
|
plt.xlabel('x')
|
|
plt.ylabel('y')
|
|
plt.legend()
|
|
plt.title('Exponential Fit')
|
|
plt.grid(True)
|
|
plt.show()
|
|
|
|
# Output the fitted parameters
|
|
print("Fitted parameters:")
|
|
print(f"a = {params[0]}, b = {params[1]}, c = {params[2]}") |