Commit c2533934 authored by Ed Rogers's avatar Ed Rogers
Browse files

Add update of bar

parent 6c44759a
...@@ -68,26 +68,37 @@ class HearingMplCanvas(FigureCanvas): ...@@ -68,26 +68,37 @@ class HearingMplCanvas(FigureCanvas):
QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Expanding) QtWidgets.QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self) FigureCanvas.updateGeometry(self)
self.ul_bar = None
self.ll_bar = None
self.plot_result(HearingResult(parent.library.freqs)) self.plot_result(HearingResult(parent.library.freqs))
def plot_result(self, result: HearingResult): def plot_result(self, result: HearingResult):
inds = np.arange(0, result.bands.size) inds = np.arange(0, result.bands.size)
baseline = -10 baseline = -10
self.axes.set_axis_bgcolor('k') self.axes.set_axis_bgcolor('k')
self.axes.bar(inds, result.upper_bounds-baseline, color=(0, 0.5, 0), bottom=baseline) self.ul_bar = self.axes.bar(inds, result.upper_bounds-baseline, color=(0, 0.5, 0), bottom=baseline)
self.axes.bar(inds, result.lower_bounds-baseline, color=(0, 1, 0), bottom=baseline) self.ll_bar = self.axes.bar(inds, result.lower_bounds-baseline, color=(0, 1, 0), bottom=baseline)
xlim = self.axes.get_xlim() xlim = self.axes.get_xlim()
for i in np.arange(result.lower_lim+baseline, result.upper_lim, result.get_block_size()): for i in np.arange(result.lower_lim+baseline, result.upper_lim, result.get_block_size()):
self.axes.plot(self.axes.get_xlim(), np.ones(2)*i, color='k') self.axes.plot(self.axes.get_xlim(), np.ones(2)*i, color='k')
labels = [str(b) for b in result.bands] labels = [str(b) for b in result.bands]
labels.insert(0, '') labels.insert(0, '')
self.axes.set_xticklabels(labels) self.axes.set_xticklabels(labels)
print(result.bands) # print(result.bands)
print(labels) # print(labels)
print(result.lower_bounds) # print(result.lower_bounds)
self.axes.set_ylim(-10, 110) self.axes.set_ylim(-10, 110)
self.axes.set_xlim(xlim) self.axes.set_xlim(xlim)
def update_result(self, result: HearingResult) -> None:
self.set_bar_heights(self.ul_bar, result.upper_bounds)
self.set_bar_heights(self.ll_bar, result.lower_bounds)
@staticmethod
def set_bar_heights(bars: matplotlib.container.BarContainer, vals: np.ndarray):
for bar, h in zip(bars, vals):
bar.set_height(h)
class HearingTestThread(QtCore.QThread): class HearingTestThread(QtCore.QThread):
played_sound = QtCore.pyqtSignal(float, float) played_sound = QtCore.pyqtSignal(float, float)
...@@ -152,7 +163,7 @@ class TestWindow(QMainWindow): ...@@ -152,7 +163,7 @@ class TestWindow(QMainWindow):
self.log.setText('') self.log.setText('')
self.title.setText('Test running') self.title.setText('Test running')
self.log.append('Starting...') self.log.append('Starting...')
self.testing_thread = HearingTestThread(self.library) self.testing_thread = HearingTestThread(self.library, result)
self.testing_thread.played_sound.connect(self.sound_played) self.testing_thread.played_sound.connect(self.sound_played)
self.testing_thread.finished.connect(self.test_finished) self.testing_thread.finished.connect(self.test_finished)
self.testing_thread.start() self.testing_thread.start()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment