mirror of
https://github.com/janishutz/BiogasControllerApp.git
synced 2025-11-25 05:44:23 +00:00
optimized code in fit.py
This commit is contained in:
@@ -1,51 +1,60 @@
|
|||||||
import csv
|
import csv
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
go = 0
|
||||||
|
|
||||||
n = int(input("Aktuelle Sondennummer: "))
|
n = int(input("Aktuelle Sondennummer: "))
|
||||||
|
try:
|
||||||
|
imp = open("Sonden2021.csv", "r")
|
||||||
|
go = 1
|
||||||
|
except FileNotFoundError:
|
||||||
|
print("Failed to open file (non-existent or corrupted")
|
||||||
|
go = 0
|
||||||
|
if go == 1:
|
||||||
|
reader = csv.reader(imp, delimiter=',')
|
||||||
|
rohdaten = list(reader)
|
||||||
|
rohdaten.sort(key=lambda imp: float(imp[2]))
|
||||||
|
lenght = len(rohdaten)
|
||||||
|
x = []
|
||||||
|
y = []
|
||||||
|
|
||||||
imp = open("Sonden2021.csv", "r")
|
for i in range(lenght):
|
||||||
reader = csv.reader(imp, delimiter=',')
|
extract = rohdaten.pop(0)
|
||||||
rohdaten = list(reader)
|
sondennummer = int(extract.pop(0))
|
||||||
rohdaten.sort(key=lambda imp: float(imp[2]))
|
if sondennummer == n:
|
||||||
lenght = len(rohdaten)
|
xe = extract.pop(0)
|
||||||
x = []
|
ye = extract.pop(0)
|
||||||
y = []
|
y.append(float(xe))
|
||||||
for i in range(lenght):
|
x.append(float(ye))
|
||||||
extract = rohdaten.pop(0)
|
|
||||||
sondennummer = int(extract.pop(0))
|
|
||||||
if sondennummer == n:
|
|
||||||
xe = extract.pop(0)
|
|
||||||
ye = extract.pop(0)
|
|
||||||
y.append(float(xe))
|
|
||||||
x.append(float(ye))
|
|
||||||
|
|
||||||
fit = np.polyfit(x,y,2)
|
fit = np.polyfit(x, y, 2)
|
||||||
print(fit)
|
print(fit)
|
||||||
|
|
||||||
formula = "F(U) = %sU^2+%sU+%s"%(str(round(float(fit[0]),4)),str(round(float(fit[1]),4)),str(round(float(fit[2]),4)))
|
formula = "F(U) = %sU^2+%sU+%s"%(str(), str(round(float(fit[1]), 4)), str(round(float(fit[2]), 4)))
|
||||||
|
formula = f"F(U) = {round(float(fit[0]), 4)}U^2+{round(float(fit[1]), 4)}U+{round(float(fit[2]), 4)}"
|
||||||
|
|
||||||
fit_fn = np.poly1d(fit)
|
fit_fn = np.poly1d(fit)
|
||||||
|
|
||||||
|
|
||||||
plt.plot(x, fit_fn(x), color="BLUE", label="T(U)")
|
plt.plot(x, fit_fn(x), color="BLUE", label="T(U)")
|
||||||
|
|
||||||
plt.scatter(x, y, color="MAGENTA", marker="o", label="Messsdaten")
|
plt.scatter(x, y, color="MAGENTA", marker="o", label="Messsdaten")
|
||||||
plt.ylabel("Temperatur")
|
plt.ylabel("Temperatur")
|
||||||
plt.xlabel("Spannung")
|
plt.xlabel("Spannung")
|
||||||
titel = 'Temperatursonde MCP9701A Nummer: {}'.format(n)
|
titel = 'Temperatursonde MCP9701A Nummer: {}'.format(n)
|
||||||
plt.title(titel)
|
plt.title(titel)
|
||||||
plt.axis([0.6, 2, 15, 70])
|
plt.axis([0.6, 2, 15, 70])
|
||||||
plt.legend(loc="lower right")
|
plt.legend(loc="lower right")
|
||||||
plt.annotate(formula, xy=(0.85,60))
|
plt.annotate(formula, xy=(0.85, 60))
|
||||||
plt.grid(True)
|
plt.grid(True)
|
||||||
plt.show()
|
plt.show()
|
||||||
|
|
||||||
saveit = input("Sollen der Graph gespeichert werden? (y/n) ").lower()
|
saveit = input("Soll der Graph gespeichert werden? (y/n) ").lower()
|
||||||
if saveit == "y":
|
if saveit == "y":
|
||||||
plt.savefig("Sonde"+str(n)+".png")
|
plt.savefig("Sonde"+str(n)+".png")
|
||||||
plt.savefig("Sonde"+str(n)+".pdf", format="pdf")
|
plt.savefig("Sonde"+str(n)+".pdf", format="pdf")
|
||||||
plt.savefig("Sonde"+str(n)+".svg", format="svg")
|
plt.savefig("Sonde"+str(n)+".svg", format="svg")
|
||||||
print("saved images")
|
print("saved images")
|
||||||
else:
|
else:
|
||||||
print("discarded images")
|
print("discarded images")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user