IPyWidget wrappers to support rendering widgets on top of other widgets
Project description
IPyOverlay
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
WIP
Screenshots
A GIF demoing interaction with an ipympl Matplotlib figure. In the demo,
Clicking a cluster opens a pop-up window with a new figure.
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.
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.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ipyoverlay-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e85457e00deff33bfb87e8048f74c3cc82e35a902d1c461cd3b1ec126ff79a7 |
|
MD5 | 92989177b37a092b8ce86fe64b28d830 |
|
BLAKE2b-256 | 90b87050a2c45aa97f206a8334d8e928bfb09bbd540ac5e42e1d91b88e24101a |