From 7650cd707c30d13fd115c1492c622351f756d81c Mon Sep 17 00:00:00 2001 From: "silaev.vd" Date: Sun, 4 Dec 2022 17:41:49 +0300 Subject: [PATCH] saving measurments to table available now --- PycharmProjects/3.5.1 auto/fitting.py | 2 -- PycharmProjects/3.5.1 auto/visual.py | 42 +++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/PycharmProjects/3.5.1 auto/fitting.py b/PycharmProjects/3.5.1 auto/fitting.py index 1c89869..aaa9342 100644 --- a/PycharmProjects/3.5.1 auto/fitting.py +++ b/PycharmProjects/3.5.1 auto/fitting.py @@ -2,8 +2,6 @@ from scipy.optimize import curve_fit from numpy import tanh -# Обсчет значений на данный момент недоступен, но может быть вызван в другом файле -# с использованием функции fit() def probe(x, I_0, k_0, A): return I_0 * tanh(k_0 / I_0 * x) + A * x diff --git a/PycharmProjects/3.5.1 auto/visual.py b/PycharmProjects/3.5.1 auto/visual.py index 42722d5..94c04cc 100644 --- a/PycharmProjects/3.5.1 auto/visual.py +++ b/PycharmProjects/3.5.1 auto/visual.py @@ -1,6 +1,8 @@ from PySide6 import QtCore, QtWidgets, QtGui import plots import PIL +import pandas as pd +import fitting # Значения парметра part при построении графиков установлены на тестовый режим @@ -154,12 +156,20 @@ class Part1(QtWidgets.QWidget): @QtCore.Slot() def savefile(self): + # при замене устройства директорию надо изменить file, check = QtWidgets.QFileDialog.getSaveFileName(None, "Сохранить график 1", - r"C:\Users\Vadim\Desktop\plot1.jpg", "Images (*.png *.jpg)") + r"C:\Users\Vadim\Desktop\plot1.jpg", "Images (*.png *.jpg)") if check: plot1 = PIL.Image.open('tmpplots/tmpplot3.jpg') plot1.save(file) + file, check = QtWidgets.QFileDialog.getSaveFileName(None, "Сохранить значения", + r"C:\Users\Vadim\Desktop\experiment1.xlsx", "Table (.xlsx)") + if check: + data = {'U_р, В': plots.vol[2][0], 'I_р, мА': plots.cur[2][0]} + df = pd.DataFrame(data) + df.to_excel(file, index=False) + def hint(self): if not self.hint_open: self.text.show() @@ -327,11 +337,37 @@ class Part2(QtWidgets.QWidget): def save_file(self): file, check = QtWidgets.QFileDialog.getSaveFileName(None, "Сохранить график 2", - r"C:\Users\Vadim\Desktop\plot2.jpg", "Images (*.png *.jpg)") + r"C:\Users\Vadim\Desktop\plot2.jpg", "Images (*.png *.jpg)") if check: plot1 = PIL.Image.open('tmpplots/tmpplot4.jpg') plot1.save(file) + file, check = QtWidgets.QFileDialog.getSaveFileName(None, "Сохранить значения", + r"C:\Users\Vadim\Desktop\experiment2.xlsx", "Table (.xlsx)") + if check: + data = {'U_1, В': plots.vol[3][0], 'I_1, мкА': plots.cur[3][0]} + I_0, k_0, A = [], [], [] + params = fitting.fit(plots.vol[3][0], plots.cur[3][0]) + I_0.append(params[0]) + k_0.append(params[1]) + A.append(params[2]) + for i in range(len(plots.vol[3]) - 1): + mes = {'U_' + str(i+2) + ', В': plots.vol[3][i+1], 'I_' + str(i+2) + ', мкА': plots.cur[3][i+1]} + data.update(mes) + params = fitting.fit(plots.vol[3][i + 1], plots.cur[3][i + 1]) + I_0.append(params[0]) + k_0.append(params[1]) + A.append(params[2]) + + #I_0.extend([[] * (len(plots.vol[3][0]) - len(plots.vol[3]))]) + #k_0.extend([[] * (len(plots.vol[3][0]) - len(plots.vol[3]))]) + #A.extend([[] * (len(plots.vol[3][0]) - len(plots.vol[3]))]) + + data.update({'I_0, мкА': I_0, 'k_0, мкА/В': k_0, 'A, мкА/В': A}) + + df = pd.DataFrame(dict([(k, pd.Series(v)) for k, v in data.items()])) + df.to_excel(file, index=False) + def hint(self): if not self.hint_open: self.text.show() @@ -391,4 +427,4 @@ class Part2(QtWidgets.QWidget): self.num -= 1 if self.num == 0: self.save_btn.hide() - self.delete_btn.hide() \ No newline at end of file + self.delete_btn.hide()