Skip to main content

Draggable data windowing for matplotlib plots

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matplotlib_window-1.0.0.tar.gz (8.6 kB view hashes)

Uploaded Source

Built Distribution

matplotlib_window-1.0.0-py3-none-any.whl (9.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page