def _signals_plot_default(self): print('_signals_plot_default') """Create the Plot instance.""" plot = Plot() plot.add(self.signals_renderer) x_axis = PlotAxis(component=plot, mapper=self.signals_renderer.index_mapper, orientation='bottom') # y_axis = PlotAxis(component=plot, # mapper=self.signals_renderer.value_mapper, # orientation='left') plot.overlays.extend([x_axis]) plot.origin_axis_visible = False plot.padding_top = 0 plot.padding_left = 0 plot.padding_right = 0 plot.padding_bottom = 50 plot.border_visible = False plot.bgcolor = "white" plot.use_downsampling = True return plot
def update_plots(self, waveforms, results): mic_psd = db(psd(waveforms, self.model.fs, 'hanning')).mean(axis=0) results['ref_mic_psd'] = mic_psd[1] results['exp_mic_psd'] = mic_psd[0] results['freq_psd'] = psd_freq(waveforms, self.model.fs) result = MicToneCalibrationResult(**results) frequency = results['frequency'] ds = ArrayPlotData(freq_psd=results['freq_psd'], exp_mic_psd=results['exp_mic_psd'], ref_mic_psd=results['ref_mic_psd'], time=results['time'], exp_mic_waveform=results['exp_mic_waveform'], ref_mic_waveform=results['ref_mic_waveform']) # Set up the waveform plot container = HPlotContainer(bgcolor='white', padding=10) plot = Plot(ds) plot.plot(('time', 'ref_mic_waveform'), color='black') plot.index_range.low_setting = self.model.trim plot.index_range.high_setting = 5.0/frequency+self.model.trim container.add(plot) plot = Plot(ds) plot.plot(('time', 'exp_mic_waveform'), color='red') plot.index_range.low_setting = self.model.trim plot.index_range.high_setting = 5.0/frequency+self.model.trim container.add(plot) result.waveform_plots = container # Set up the spectrum plot plot = Plot(ds) plot.plot(('freq_psd', 'ref_mic_psd'), color='black') plot.plot(('freq_psd', 'exp_mic_psd'), color='red') plot.index_scale = 'log' plot.title = 'Microphone response' plot.padding = 50 plot.index_range.low_setting = 100 plot.tools.append(PanTool(plot)) zoom = ZoomTool(component=plot, tool_mode='box', always_on=False) plot.overlays.append(zoom) result.spectrum_plots = plot # Plot the fundamental (i.e. the tone) and first even/odd harmonics harmonic_container = HPlotContainer(resizable='hv', bgcolor='white', fill_padding=True, padding=10) for i in range(3): f_harmonic = results['exp_harmonics'][i]['frequency'] plot = Plot(ds) plot.plot(('freq_psd', 'ref_mic_psd'), color='black') plot.plot(('freq_psd', 'exp_mic_psd'), color='red') plot.index_range.low_setting = f_harmonic-500 plot.index_range.high_setting = f_harmonic+500 plot.origin_axis_visible = True plot.padding_left = 10 plot.padding_right = 10 plot.border_visible = True plot.title = 'F{}'.format(i+1) harmonic_container.add(plot) result.harmonic_plots = harmonic_container self.model.tone_data.append(result) # Update the master overview self.model.measured_freq.append(results['frequency']) self.model.measured_spl.append(results['output_spl']) self.model.exp_mic_sens.append(results['exp_mic_sens']) for mic in ('ref', 'exp'): for h in range(3): v = results['{}_harmonics'.format(mic)][h]['mic_rms'] name = 'measured_{}_f{}'.format(mic, h+1) getattr(self.model, name).append(v) v = results['{}_thd'.format(mic)] getattr(self.model, 'measured_{}_thd'.format(mic)).append(v) ds = ArrayPlotData( frequency=self.model.measured_freq, spl=self.model.measured_spl, measured_exp_thd=self.model.measured_exp_thd, measured_ref_thd=self.model.measured_ref_thd, exp_mic_sens=self.model.exp_mic_sens, ) container = VPlotContainer(padding=10, bgcolor='white', fill_padding=True, resizable='hv') plot = Plot(ds) plot.plot(('frequency', 'spl'), color='black') plot.plot(('frequency', 'spl'), color='black', type='scatter') plot.index_scale = 'log' plot.title = 'Speaker output (dB SPL)' container.add(plot) plot = Plot(ds) plot.plot(('frequency', 'measured_ref_thd'), color='black') plot.plot(('frequency', 'measured_ref_thd'), color='black', type='scatter') plot.plot(('frequency', 'measured_exp_thd'), color='red') plot.plot(('frequency', 'measured_exp_thd'), color='red', type='scatter') plot.index_scale = 'log' plot.title = 'Total harmonic distortion (frac)' container.add(plot) plot = Plot(ds) plot.plot(('frequency', 'exp_mic_sens'), color='red') plot.plot(('frequency', 'exp_mic_sens'), color='red', type='scatter') plot.index_scale = 'log' plot.title = 'Experiment mic. sensitivity V (dB re Pa)' container.add(plot) self.model.spl_plots = container