2021-07-16 09:19:00 -07:00
|
|
|
from PyQt5 import QtWidgets
|
2021-07-13 23:25:37 -07:00
|
|
|
import matplotlib
|
|
|
|
matplotlib.use('Qt5Agg')
|
|
|
|
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg, NavigationToolbar2QT as NavigationToolbar
|
|
|
|
from matplotlib.figure import Figure
|
|
|
|
from memdb import mem
|
|
|
|
|
|
|
|
class MplCanvas(FigureCanvasQTAgg):
|
|
|
|
def __init__(self, parent=None, width=5, height=4, dpi=100):
|
|
|
|
fig = Figure(figsize=(width, height), dpi=dpi)
|
|
|
|
self.axes = fig.add_subplot(111)
|
|
|
|
fig.tight_layout()
|
|
|
|
super(MplCanvas, self).__init__(fig)
|
|
|
|
|
2021-07-16 09:19:00 -07:00
|
|
|
class BaseGraph(QtWidgets.QWidget):
|
2021-07-13 23:25:37 -07:00
|
|
|
"""
|
|
|
|
Widget with embedded matplotlib graph & navigation toolbar
|
|
|
|
|
|
|
|
Reference: https://www.mfitzp.com/tutorials/plotting-matplotlib/
|
|
|
|
"""
|
|
|
|
|
|
|
|
canv = None
|
|
|
|
|
|
|
|
def __init__(self, x):
|
|
|
|
super().__init__(x)
|
|
|
|
self.canv = MplCanvas(self)
|
|
|
|
# Example
|
|
|
|
# canv.axes.plot([0,1,2,3,4], [10,1,20,3,40])
|
|
|
|
toolbar = NavigationToolbar(self.canv, self)
|
|
|
|
layout = QtWidgets.QVBoxLayout()
|
|
|
|
layout.addWidget(toolbar)
|
|
|
|
layout.addWidget(self.canv)
|
|
|
|
self.setLayout(layout)
|
|
|
|
|
2021-07-16 09:19:00 -07:00
|
|
|
def plot_data(self):
|
2021-07-13 23:25:37 -07:00
|
|
|
self.canv.axes.plot(mem['x_data'], mem['y_data'])
|
|
|
|
|
2021-07-16 09:19:00 -07:00
|
|
|
def plot(self):
|
2021-07-13 23:25:37 -07:00
|
|
|
self.canv.axes.clear()
|
2021-07-16 09:19:00 -07:00
|
|
|
self.plot_data()
|
2021-07-13 23:25:37 -07:00
|
|
|
self.canv.draw()
|
|
|
|
print("attempted plot")
|
|
|
|
|
2021-07-16 09:19:00 -07:00
|
|
|
class RawDataGraph(BaseGraph):
|
|
|
|
pass
|
2021-07-13 23:25:37 -07:00
|
|
|
|
2021-07-16 09:19:00 -07:00
|
|
|
class PeaksGraph(BaseGraph):
|
|
|
|
def plot_data(self):
|
2021-07-13 23:25:37 -07:00
|
|
|
for i in mem['groups_correlated']:
|
|
|
|
self.canv.axes.plot(i)
|
|
|
|
|
2021-07-16 09:19:00 -07:00
|
|
|
class TimeConstantGraph(BaseGraph):
|
|
|
|
pass # no modifications thus far
|