don't reformat all the lines on every re-draw
This commit is contained in:
parent
014c742e0a
commit
322b5ebc9b
|
@ -49,7 +49,9 @@ class PlotWidget(QWidget):
|
||||||
self.fig = plt.Figure(figsize=(5, 4), dpi=100, tight_layout=True)
|
self.fig = plt.Figure(figsize=(5, 4), dpi=100, tight_layout=True)
|
||||||
self.ax = self.fig.add_subplot(111)
|
self.ax = self.fig.add_subplot(111)
|
||||||
self.set_plot_type(type_)
|
self.set_plot_type(type_)
|
||||||
self.lines = [self.ax.plot([np.nan], [np.nan], label="$S_{" + str(m) + str(n) + "}$") for m, n in self.traces]
|
self.lines = [
|
||||||
|
self.ax.plot([np.nan], [np.nan], label="$S_{" + str(m) + str(n) + "}$")[0] for m, n in self.traces
|
||||||
|
]
|
||||||
self.ax.legend(loc="upper right")
|
self.ax.legend(loc="upper right")
|
||||||
|
|
||||||
canvas = FigureCanvasQTAgg(self.fig)
|
canvas = FigureCanvasQTAgg(self.fig)
|
||||||
|
@ -97,14 +99,11 @@ class PlotWidget(QWidget):
|
||||||
|
|
||||||
def update_rect(self, data: xr.DataArray, func: Callable[[npt.ArrayLike], npt.ArrayLike]) -> None:
|
def update_rect(self, data: xr.DataArray, func: Callable[[npt.ArrayLike], npt.ArrayLike]) -> None:
|
||||||
self.ax.set_xlim(data["frequency"].min().data, data["frequency"].max().data)
|
self.ax.set_xlim(data["frequency"].min().data, data["frequency"].max().data)
|
||||||
# remove old lines
|
|
||||||
for line in self.ax.lines:
|
|
||||||
line.remove()
|
|
||||||
for ii, (m, n) in enumerate(self.traces):
|
for ii, (m, n) in enumerate(self.traces):
|
||||||
self.lines[ii] = self.ax.plot(data["frequency"], func(data.sel(m=m, n=n)))[0]
|
self.lines[ii].set_xdata(data["frequency"])
|
||||||
|
self.lines[ii].set_ydata(func(data.sel(m=m, n=n)))
|
||||||
|
|
||||||
self.fig.canvas.draw()
|
self.fig.canvas.draw()
|
||||||
self.fig.canvas.flush_events()
|
|
||||||
|
|
||||||
def setup_logmag(self, ylim: List[float] = [-30, 30]) -> None:
|
def setup_logmag(self, ylim: List[float] = [-30, 30]) -> None:
|
||||||
self.setup_rect()
|
self.setup_rect()
|
||||||
|
@ -139,15 +138,12 @@ class PlotWidget(QWidget):
|
||||||
rf_plt.smith(ax=self.ax, smithR=1, chart_type="z", draw_vswr=None)
|
rf_plt.smith(ax=self.ax, smithR=1, chart_type="z", draw_vswr=None)
|
||||||
|
|
||||||
def update_smith(self, data: xr.DataArray) -> None:
|
def update_smith(self, data: xr.DataArray) -> None:
|
||||||
# remove old lines
|
|
||||||
for line in self.ax.lines:
|
|
||||||
line.remove()
|
|
||||||
for ii, (m, n) in enumerate(self.traces):
|
for ii, (m, n) in enumerate(self.traces):
|
||||||
sel = data.sel(m=m, n=n)
|
sel = data.sel(m=m, n=n)
|
||||||
self.lines[ii] = self.ax.plot(sel.real, sel.imag)[0]
|
self.lines[ii].set_xdata(sel.real)
|
||||||
|
self.lines[ii].set_ydata(sel.imag)
|
||||||
|
|
||||||
self.fig.canvas.draw()
|
self.fig.canvas.draw()
|
||||||
self.fig.canvas.flush_events()
|
|
||||||
|
|
||||||
|
|
||||||
# Subclass QMainWindow to customize your application's main window
|
# Subclass QMainWindow to customize your application's main window
|
||||||
|
|
Loading…
Reference in New Issue
Block a user