magscope.ui.plots

Contents

magscope.ui.plots#

Classes#

Module Contents#

class magscope.ui.plots.PlotWorker[source]#

Bases: PyQt6.QtCore.QObject

image_signal[source]#
limits_signal[source]#
selected_bead_signal[source]#
reference_bead_signal[source]#
stop_signal[source]#
figure_size_signal[source]#
time_mode_signal[source]#
relative_window_signal[source]#
axes: matplotlib.axes.Axes[source]#
locks: dict[str, multiprocessing.synchronize.Lock][source]#
figure: matplotlib.figure.Figure | None = None[source]#
canvas: matplotlib.backends.backend_qtagg.FigureCanvasQTAgg[source]#
_is_running: bool = False[source]#
plots = [][source]#
limits: dict[str, tuple[float, float]][source]#
selected_bead: int | None = 0[source]#
reference_bead: int | None = None[source]#
n_plots: int[source]#
update_on: bool = True[source]#
_update_last_time: float[source]#
fig_width = 5[source]#
fig_height = 4[source]#
dpi = 100[source]#
device_pixel_ratio = 1.0[source]#
time_mode = 'absolute'[source]#
relative_window_seconds: float | None = 300[source]#
_tracks_snapshot: numpy.ndarray | None = None[source]#
mutex: PyQt6.QtCore.QMutex[source]#
figure_size_changed = True[source]#
setup()[source]#
run()[source]#
do_main_loop()[source]#
add_plot(plot: TimeSeriesPlotBase)[source]#

Used to add plots before the process has started

_set_limits(limits: dict[str, list[float, float]])[source]#
_set_selected_bead(bead: int)[source]#
_set_reference_bead(bead: int | None)[source]#
set_locks(locks: dict[str, multiprocessing.synchronize.Lock])[source]#
_stop()[source]#
dispose() None[source]#
_update_figure_size(width: int, height: int, device_pixel_ratio: float)[source]#

Slot: update figure size based on QLabel dimensions.

_recreate_figure_if_needed()[source]#

Recreate figure and canvas if size changed.

_set_time_mode(time_mode: str)[source]#
_set_relative_window(window_seconds: float | None)[source]#
_apply_time_axis_format()[source]#
class magscope.ui.plots.TimeSeriesPlotBase(buffer_name: str, ylabel: str)[source]#
buffer: magscope.datatypes.MatrixBuffer[source]#
buffer_name[source]#
parent: PlotWorker[source]#
axes: matplotlib.axes.Axes[source]#
ylabel[source]#
setup()[source]#

Called after the parent process is started

set_parent(parent: PlotWorker)[source]#
set_axes(axes: matplotlib.axes.Axes)[source]#
abstractmethod update()[source]#
class magscope.ui.plots.TracksTimeSeriesPlot(axis_name: str)[source]#

Bases: TimeSeriesPlotBase

axis_name[source]#
axis_index[source]#
line: matplotlib.lines.Line2D[source]#
setup()[source]#

Called after the parent process is started

update()[source]#