1
0
Fork 0
mirror of https://github.com/Athemis/PyDSF.git synced 2025-04-20 20:09:13 +00:00

Start reimplementing plotting code

This commit is contained in:
Alexander Minges 2015-02-10 03:19:40 +01:00
parent 9d1e3d8fa2
commit fef87a6657
5 changed files with 152 additions and 54 deletions

View file

@ -202,19 +202,19 @@ class Ui_MainWindow(object):
self.tabWidget.setSizePolicy(sizePolicy)
self.tabWidget.setMinimumSize(QtCore.QSize(300, 300))
self.tabWidget.setObjectName("tabWidget")
self.tab_raw = MplWidget()
self.tab_raw.setObjectName("tab_raw")
self.tabWidget.addTab(self.tab_raw, "")
self.tab_derivative = MplWidget()
self.tab_derivative.setObjectName("tab_derivative")
self.tabWidget.addTab(self.tab_derivative, "")
self.tab_heatmap = MplWidget()
self.tab_heatmap.setObjectName("tab_heatmap")
self.tabWidget.addTab(self.tab_heatmap, "")
self.tab_heatmap_avg = MplWidget()
self.tab_heatmap_avg.setEnabled(False)
self.tab_heatmap_avg.setObjectName("tab_heatmap_avg")
self.tabWidget.addTab(self.tab_heatmap_avg, "")
#self.tab_raw = MplWidget()
#self.tab_raw.setObjectName("tab_raw")
#self.tabWidget.addTab(self.tab_raw, "")
#self.tab_derivative = MplWidget()
#self.tab_derivative.setObjectName("tab_derivative")
#self.tabWidget.addTab(self.tab_derivative, "")
#self.tab_heatmap = MplWidget()
#self.tab_heatmap.setObjectName("tab_heatmap")
#self.tabWidget.addTab(self.tab_heatmap, "")
#self.tab_heatmap_avg = MplWidget()
#self.tab_heatmap_avg.setEnabled(False)
#self.tab_heatmap_avg.setObjectName("tab_heatmap_avg")
#self.tabWidget.addTab(self.tab_heatmap_avg, "")
self.horizontalLayout.addWidget(self.splitter)
MainWindow.setCentralWidget(self.centralWidget)
self.menuBar = QtWidgets.QMenuBar(MainWindow)
@ -291,10 +291,10 @@ class Ui_MainWindow(object):
self.doubleSpinBox_cbar_start.setSuffix(_translate("MainWindow", " °C"))
self.label_cbar_end.setText(_translate("MainWindow", "En&d"))
self.doubleSpinBox_cbar_end.setSuffix(_translate("MainWindow", " °C"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_raw), _translate("MainWindow", "Raw Data"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_derivative), _translate("MainWindow", "&1st derivative"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_heatmap), _translate("MainWindow", "Heatmap"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_heatmap_avg), _translate("MainWindow", "Heatmap average"))
#self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_raw), _translate("MainWindow", "Raw Data"))
#self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_derivative), _translate("MainWindow", "&2nd derivative"))
#self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_heatmap), _translate("MainWindow", "Heatmap"))
#self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_heatmap_avg), _translate("MainWindow", "Heatmap average"))
self.menuFile.setTitle(_translate("MainWindow", "Fi&le"))
self.menuHelp.setTitle(_translate("MainWindow", "Hel&p"))
self.actionQuit.setText(_translate("MainWindow", "&Quit"))

View file

@ -6,12 +6,20 @@ Module implementing MainWindow.
VERSION = "1.0"
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtCore import pyqtSlot, QObject, pyqtSignal
from PyQt5.QtWidgets import *
from .Ui_mainwindow import Ui_MainWindow
from .mplwidget import MplWidget
from pydsf import *
class ProcessData(QObject):
finished = pyqtSignal()
def process(self):
raise NotImplementedError
class MainWindow(QMainWindow, Ui_MainWindow):
"""
@ -70,6 +78,27 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# self.groupBox_cbar.setEnabled(True)
# self.groupBox_signal_threshold.setEnabled(True)
def generate_plot_tab(self, name):
tab = MplWidget()
tab.setObjectName(name)
return tab
def generate_plate_tabs(self, plate):
plotter = PlotResults()
if id != 'average':
tab = self.generate_plot_tab("tab_heatmap_{}".format(id))
self.tabWidget.addTab(tab, "Heatmap #{}".format(plate.id))
plotter.plot_tm_heatmap_single(plate, tab)
tab = self.generate_plot_tab("tab_raw_{}".format(id))
self.tabWidget.addTab(tab, "Raw Data #{}".format(plate.id))
plotter.plot_raw(plate, tab)
else:
tab = self.generate_plot_tab("tab_heatmap_{}".format(id))
self.tabWidget.addTab(tab, "Heatmap ({})".format(plate.id))
plotter.plot_tm_heatmap_single(plate, tab)
@pyqtSlot()
def on_buttonBox_process_accepted(self):
"""
@ -128,20 +157,36 @@ class MainWindow(QMainWindow, Ui_MainWindow):
exp.avg_plate.write_avg_tm_table('{}/plate_{}_05_tm_avg.csv'.format(folder, str(exp.avg_plate.id)))
#plot(plate, self)
plotter = PlotResults(exp)
for i in range(self.tabWidget.count()):
for plate in exp.plates:
if i == 0:
plotter.plot_raw(plate, self.tabWidget.widget(i))
elif i == 1:
plotter.plot_derivative(plate, self.tabWidget.widget(i))
elif i == 2:
plotter.plot_tm_heatmap_single(plate, self.tabWidget.widget(i))
elif exp.avg_plate and i == 3:
plotter.plot_tm_heatmap_single(exp.avg_plate, self.tabWidget.widget(i))
self.tabWidget.setTabEnabled(i, True)
else:
self.tabWidget.setTabEnabled(i, False)
for i in range(len(exp.plates)):
plate = exp.plates[i]
self.generate_plate_tabs(plate)
if exp.avg_plate:
plate = exp.avg_plate
self.generate_plate_tabs(plate)
#for i in range(self.tabWidget.count()):
# for plate in exp.plates:
# if i == 0:
# plotter.plot_raw(plate, self.tabWidget.widget(i))
# self.tabWidget.setTabText(i, "Raw Data #{}".format(plate.id))
#elif i == 1:
# plotter.plot_derivative(plate, self.tabWidget.widget(i))
#elif i == 2:
# plotter.plot_tm_heatmap_single(plate, self.tabWidget.widget(i))
#elif exp.avg_plate and i == 3:
# plotter.plot_tm_heatmap_single(exp.avg_plate, self.tabWidget.widget(i))
# self.tabWidget.setTabEnabled(i, True)
#else:
# self.tabWidget.setTabEnabled(i, False)
#fig, ax = figures[0]
#self.tabWidget.widget(0).canvas.fig = fig
@ -190,3 +235,4 @@ class MainWindow(QMainWindow, Ui_MainWindow):
Slot documentation goes here.
"""
QApplication.aboutQt()

View file

@ -485,7 +485,7 @@
</widget>
<widget class="MplWidget" name="tab_derivative">
<attribute name="title">
<string>&amp;1st derivative</string>
<string>&amp;2nd derivative</string>
</attribute>
</widget>
<widget class="MplWidget" name="tab_heatmap">

View file

@ -10,6 +10,7 @@ class MplCanvas(FigureCanvas):
FigureCanvas.__init__(self, self.fig)
FigureCanvas.setSizePolicy(self, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self)
self.setFocusPolicy(QtCore.Qt.StrongFocus)
def clear(self):
self.ax.clear()
@ -18,7 +19,6 @@ class MplCanvas(FigureCanvas):
class MplWidget(QtWidgets.QWidget):
def __init__(self, parent = None):
QtWidgets.QWidget.__init__(self, parent)
self.canvas = MplCanvas()
self.ntb = NavigationToolbar(self.canvas, self)
self.vbl = QtWidgets.QVBoxLayout()