def plot_trend(self, signal, legend=False, num=None): if self.ax_signal is None: fig = ppl.figure(num, figsize=(6, 3.5)) self.ax_signal = pl.mk_signal_ax(self.time_unit_label, fig=fig) tvec = np.arange(len(signal)) * self.dt trend = self.get_trend(signal) pl.draw_trend(self.ax_signal, tvec, trend) if legend: self.ax_signal.legend(fontsize=pl.label_size, ncol=3) ymin, ymax = self.ax_signal.get_ylim() self.ax_signal.set_ylim((ymin, 1.3 * ymax)) fig = ppl.gcf() fig.subplots_adjust(bottom=0.18) fig.tight_layout()
signal2 = ssg.create_chirp(T1=70 / dt, T2=70 / dt, Nt=Nt) # linear superposition signal = signal1 + 1.5 * signal2 # --- calculate trend --- trend = pyboat.sinc_smooth(signal, T_cut_off, dt) detr_signal = signal - trend # plot the signal/trend tvec = np.arange(len(signal)) * dt ax = pl.mk_signal_ax(time_unit='s') pl.draw_signal(ax, tvec, signal) # pl.draw_detrended(ax, tvec, signal) pl.draw_trend(ax, tvec, trend) ppl.legend(ncol=2) ppl.tight_layout() # --- compute spectrum on the original signal --- modulus, wlet = pyboat.compute_spectrum(signal, dt, periods) # plot spectrum and ridge ax_sig, ax_spec = pl.mk_signal_modulus_ax(time_unit) pl.plot_signal_modulus((ax_sig, ax_spec), tvec, signal, modulus, periods) # --- compute spectrum on the detrended signal --- modulus, wlet = pyboat.compute_spectrum(detr_signal, dt, periods) # get maximum ridge ridge_ys = pyboat.get_maxRidge_ys(modulus)
def doPlot(self): ''' Checks the checkboxes for trend and envelope.. ''' # update raw_signal and tvec succ = self.vector_prep(self.signal_id) # error handling done here if not succ: return False if self.debug: print( "called Plotting [raw] [trend] [detrended] [envelope]", self.cb_raw.isChecked(), self.cb_trend.isChecked(), self.cb_detrend.isChecked(), self.cb_envelope.isChecked(), ) # check if trend is needed if self.cb_trend.isChecked() or self.cb_detrend.isChecked(): trend = self.calc_trend() if trend is None: return else: trend = None # envelope calculation if self.cb_envelope.isChecked(): envelope = self.calc_envelope() if envelope is None: return else: envelope = None self.tsCanvas.fig1.clf() ax1 = pl.mk_signal_ax(self.time_unit, fig=self.tsCanvas.fig1) self.tsCanvas.fig1.add_axes(ax1) if self.debug: print( f"plotting signal and trend with {self.tvec[:10]}, {self.raw_signal[:10]}" ) if self.cb_raw.isChecked(): pl.draw_signal(ax1, time_vector=self.tvec, signal=self.raw_signal) if trend is not None and self.cb_trend.isChecked(): pl.draw_trend(ax1, time_vector=self.tvec, trend=trend) if trend is not None and self.cb_detrend.isChecked(): ax2 = pl.draw_detrended( ax1, time_vector=self.tvec, detrended=self.raw_signal - trend ) ax2.legend(fontsize=pl.tick_label_size) if envelope is not None and not self.cb_detrend.isChecked(): pl.draw_envelope(ax1, time_vector=self.tvec, envelope=envelope) # plot on detrended axis if envelope is not None and self.cb_detrend.isChecked(): pl.draw_envelope(ax2, time_vector=self.tvec, envelope=envelope) ax2.legend(fontsize=pl.tick_label_size) self.tsCanvas.fig1.subplots_adjust(bottom=0.15, left=0.15, right=0.85) # add a simple legend ax1.legend(fontsize=pl.tick_label_size) self.tsCanvas.draw() self.tsCanvas.show()
def doPlot(self): if self.raw_signal is None: self.NoSignal = MessageWindow("Please create a signal first!", "No Signal") if self.debug: print( "called Plotting [raw] [trend] [detrended] [envelope]", self.cb_raw.isChecked(), self.cb_trend.isChecked(), self.cb_detrend.isChecked(), self.cb_envelope.isChecked(), ) # check if trend is needed if self.T_c and (self.cb_trend.isChecked() or self.cb_detrend.isChecked()): if self.debug: print("Calculating trend with T_c = ", self.T_c) trend = self.calc_trend() else: trend = None # envelope calculation if self.L and self.cb_envelope.isChecked(): if self.debug: print("Calculating envelope with L = ", self.L) envelope = self.calc_envelope() else: envelope = None self.tsCanvas.fig1.clf() ax1 = pl.mk_signal_ax(self.time_unit, fig=self.tsCanvas.fig1) self.tsCanvas.fig1.add_axes(ax1) if self.debug: print( f"plotting signal and trend with {self.tvec[:10]}, {self.raw_signal[:10]}" ) if self.cb_raw.isChecked(): pl.draw_signal(ax1, time_vector=self.tvec, signal=self.raw_signal) if trend is not None and self.cb_trend.isChecked(): pl.draw_trend(ax1, time_vector=self.tvec, trend=trend) if trend is not None and self.cb_detrend.isChecked(): ax2 = pl.draw_detrended(ax1, time_vector=self.tvec, detrended=self.raw_signal - trend) ax2.legend(fontsize=pl.tick_label_size) if envelope is not None and not self.cb_detrend.isChecked(): pl.draw_envelope(ax1, time_vector=self.tvec, envelope=envelope) # plot on detrended axis if envelope is not None and self.cb_detrend.isChecked(): pl.draw_envelope(ax2, time_vector=self.tvec, envelope=envelope) ax2.legend(fontsize=pl.tick_label_size) self.tsCanvas.fig1.subplots_adjust(bottom=0.15, left=0.15, right=0.85) # add a simple legend ax1.legend(fontsize=pl.tick_label_size) self.tsCanvas.draw() self.tsCanvas.show()