Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plot specs and views as a separate project #72

Open
danielballan opened this issue Dec 8, 2020 · 0 comments
Open

Plot specs and views as a separate project #72

danielballan opened this issue Dec 8, 2020 · 0 comments

Comments

@danielballan
Copy link
Member

danielballan commented Dec 8, 2020

A thought I had today is, when we follow through on #65 we will have three layers:

  1. An abstract description of a Figure, Axes, and various plot marks (lines, images, etc.) that work with multiple Views (Jupyter, Headless MPL, Qt MPL, soon plotly and bqplot, etc.) that only know "Here's the function I call to get an update" and "Here is the signal I subscribe to listen to when an update is available." No bluesky concepts here.
  2. Shims that adapt (1) to BlueskyRun, hooking BlueskyRun's signals into the generic signals implemented by (1).
  3. Models that, given a BlueskyRun or an observable list of them (depending on the model), update a Figure or a list of them (depending on the model). The RecentLines and AutoRecentLines models are examples of these. We provisionally call them "plot builders." They are tightly coupled to (2) and to the concept of BlueskyRun, and they provide a user-friendly interface tuned to specific use cases.

The models and views in (1) could make sense as a stand-alone project, perhaps even outside of the bluesky organization. It bears more than a little resemblance to the design of the planned "Matplotlib 4", but there is not complete overlap. These models and views encompass frameworks' UI elements beyond the "figure area" (for example, Qt or Jupyter tabbed widgets of multiple figures; or Qt or Jupyter sliders for scrolling through multi-dimensional figures). Also, as a separate, new project it could move at whatever pace we need it move at and prioritize the features that we need.

I don't think it makes sense to factor it out at this early stage, but it might make sense to do so in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant