Skip to main content

IPyWidget wrappers to support rendering widgets on top of other widgets

Project description

IPyOverlay

Code style: black PyPI version License

IPyOverlay is a library of IPyWidget "wrapper components" that support rendering widgets on top of other widgets with arbitrary/controllable positioning. This allows interfaces with overlay elements, e.g. pop-up windows, custom context menus, etc.

The intent is to provide the mechanisms necessary to implement more complex details-on-demand functionality (one part of the visual information-seeking mantra published in The Eyes Have it: A Task by Data Type Taxonomy for Information Visualizations), for dashboards and visualizations that allow a user to hone in and get more in-depth information or additional plots when requested.

Installation

IPyOverlay can be installed via pip with:

pip install ipyoverlay

Documentation

User guide and API documentation can be found at https://ornl.github.io/ipyoverlay

Screenshots

Demo GIF of interacting with a plot with ipyoverlay A GIF demoing interaction with an ipympl Matplotlib figure. In the demo, Clicking a cluster opens a pop-up window with a new figure.

Figures rendered on top of other figures The background Matplotlib figure shown is rendered as an interactive ipympl widget and wrapped in IPyOverlay’s OverlayContainer, and shows a UMAP of clustered embeddings. Clicking a cluster or right-clicking and selecting an exhibit creates a click-and-draggable pop-up window containing a new visualization that plots more details for the selected cluster. Optionally, each pop-up window can show a line connecting the window to the center of the cluster it is associated with in the underlying figure.

Right click context menu Custom actions can be added as A right-click menu to any widget. This menu is specific to this Matplotlib UMAP and allows users to choose whether to open a violin or distribution plot for the hovered cluster.

Overlay widgets can span larger areas in the notebook If multiple separate “background” widgets (Matplotlib UMAP on the left and Plotly map on the right) are wrapped in an OverlayContainer, overlay widgets can be displayed and dragged over all of them.

Citation

To cite usage of IPyOverlay, you can use the following bibtex:

@misc{doecode_127817,
    title = {IPyOverlay},
    author = {Martindale, Nathan and Smith, Jacob and Linville, Lisa and Hite, Jason and Adams, Mark and Stewart, Scott},
    abstractNote = {IPyOverlay is a Python library that provides several IPyWidget components for use within the Jupyter software ecosystem. These components add novel UI capabilities to enable details-on-demand interaction paradigms by providing the ability to render widgets on top of other widgets with arbitrary and controllable positioning. This capability enables adding click-and-draggable overlay windows containing other widgets, right-click context menus, and more complex tooltip functionality.},
    doi = {10.11578/dc.20240530.1},
    url = {https://doi.org/10.11578/dc.20240530.1},
    howpublished = {[Computer Software] \url{https://doi.org/10.11578/dc.20240530.1}},
    year = {2024},
    month = {may}
}

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

ipyoverlay-0.2.1.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ipyoverlay-0.2.1-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file ipyoverlay-0.2.1.tar.gz.

File metadata

  • Download URL: ipyoverlay-0.2.1.tar.gz
  • Upload date:
  • Size: 29.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for ipyoverlay-0.2.1.tar.gz
Algorithm Hash digest
SHA256 79666c8613d580e691234452dbd33f5ff5261227155289fe925cb97a5748a3c3
MD5 09cf2f843d632a41a0307afedeb85c40
BLAKE2b-256 0436c05dadd3567a1e9b234f1457139c4752c375e10666e3900cb8b7d103a125

See more details on using hashes here.

File details

Details for the file ipyoverlay-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: ipyoverlay-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 31.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.2

File hashes

Hashes for ipyoverlay-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 50988dc978092f7e71fac7d7b59a4a5729f4a0e1c2d97fdc03faa68fc4d107ae
MD5 c7ad8a22529290da97113322d652de60
BLAKE2b-256 83eb012ee2becb052aee89abb2706e6156e288587c4cbc4aca8c0c1caa34efcf

See more details on using hashes here.

Supported by

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