Skip to content
generated from sco1/py-template

Draggable data windowing for matplotlib plots

License

Notifications You must be signed in to change notification settings

sco1/matplotlib-window

Repository files navigation

matplotlib-window

PyPI - Python Version PyPI PyPI - License pre-commit.ci status

Draggable data windowing for matplotlib plots. Inspired by the adventures of past me and dragpy.

fixed window sample

Interface

For most use cases, interaction with this library is done via the helper wrappers in matplotlib_window.window. These functions will accept the user data and build the plots directly for windowing.

fixed_window

Plot the provided data & build a draggable fixed-width window to select bounds of interest; the x-locations of the edges of the window are returned once the figure window is closed.

Parameters

Parameter Description Type Default
x_data x data values to plot Sequence[int|float] Required
y_data y data values to plot Sequence[int|float] Required
position x-coordinate of the left edge of the window int|float Required
window_width Width, along the x-axis, of the draggable window int|float Required
snap_to_data Prevent dragging of the window beyond beyond the bounds of the plotted data bool True
axes_kwargs Optional kwargs to pass to the Axes constructor1 dict[str, Any] {"title": ...}
plot_kwargs Optional kwargs to pass to the plotting call2 dict[str, Any] {}
  1. kwargs are passed directly to the Axes constructor, see the matplotlib.axes.Axes documentation for supported arguments.
  2. kwargs are passed directly to the plotting call, see the matplotlib.pyplot.plot documentation for supported arguments.

flexible_window

Plot the provided data & build a flexible-width window to select bounds of interest; the x-locations of the edges of the window are returned once the figure window is closed.

Parameters

Parameter Description Type Default
x_data x data values to plot Sequence[int|float] Required
y_data y data values to plot Sequence[int|float] Required
position x-coordinate of the left edge of the window int|float Required
window_width Starting width, along the x-axis, of the flexible window int|float Required
snap_to_data Prevent dragging of the window beyond beyond the bounds of the plotted data bool True
allow_face_drag Allow dragging of the window using its face1 bool False
axes_kwargs Optional kwargs to pass to the Axes constructor2 dict[str, Any] {"title": ...}
plot_kwargs Optional kwargs to pass to the plotting call3 dict[str, Any] {}
  1. Currently not implemented
  2. kwargs are passed directly to the Axes constructor, see the matplotlib.axes.Axes documentation for supported arguments.
  3. kwargs are passed directly to the plotting call, see the matplotlib.pyplot.plot documentation for supported arguments.

About

Draggable data windowing for matplotlib plots

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Languages