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

GOAL: Minimap/RangeTool #36

Closed
7 of 8 tasks
droumis opened this issue Jun 6, 2023 · 1 comment
Closed
7 of 8 tasks

GOAL: Minimap/RangeTool #36

droumis opened this issue Jun 6, 2023 · 1 comment
Assignees
Labels
eeg eeg-viewer eeg-viewer workflow ephys ephys-viewer ephys-viewer workflow

Comments

@droumis
Copy link
Collaborator

droumis commented Jun 6, 2023

Summary and Links

  • minimap (lead: @droumis and @hoxbro )
  • demonstrate a zscored image minimap for timeseries data
  • potentially build this into the large data handling approach

Relevant Workflows

  • eeg viewer
  • ephys viewer

Inspiration:

  • MNE raw.plot

Requirements

  • RangeTool-like functionality to control the x/y range display of a timeseries plot
  • Downscaled/datashaded z-scored image of the timeseries as the default minimap, since it reflects all of a potentially massive dataset
  • extension to toggle between different image representations, like [empty, channels (HSpans for different channel group types), zscore]
  • Work within a Holoviews or Panel layout (there's a workaround)
  • Work with VSpans (coordinated annotations with the main plot)
  • 'reset' bokeh toolbar button resets the view to the potentially restricted initial xy range of the rangetool, not the entire plot (HoloViews #5848)
  • minimap should be responsive in the X direction to the size of the window, but the Y-size of the minimap should stay constant.
  • ensuring all requirements above works in standalone server vs notebook
@droumis droumis added eeg-viewer eeg-viewer workflow eeg ephys-viewer ephys-viewer workflow ephys labels Jun 6, 2023
@droumis droumis self-assigned this Jun 6, 2023
@droumis droumis removed their assignment Aug 2, 2023
@droumis droumis changed the title GOAL: Minimap GOAL: Minimap/RangeTool Aug 3, 2023
@droumis
Copy link
Collaborator Author

droumis commented Aug 16, 2023

Continuing the conversation here that started in the Scale Bar issue, but is more about minimap.

We probably don't want one minimap per subplot (separate canvases), right?

Good point; definitely want one minimap. But I'm not sure I follow your concerns about the x_range above; seems like a minimap's selected range can be respected by multiple plots or by a single plot about equally easily. In the other direction, updating the xrange on one of the plots should then update the xrange of the minimap and of the other plot, which again seems doable. But I could easily be missing something.

I get that you can use the implicit axes linking in HoloViews to link the x-axes of two plots, one of which is linked to the RangeTooLink, but I don't understand how to do that strictly with the RangeToolLink since you need to define a single input source plot. Regardless, the bigger issue is how we would handle multiple plots with different y-axes using a single minimap, for which I still don't see a reasonable way forward. It seems like the options are either one minimap per data type plot (so multiple plots), or one minimap and one combined/grouped data type plot (as MNE does it).

Just for fun, as shown in the video below, I created two minimaps, one to control the EEG and one for MEG channels. Although there is some pretty quirky behavior (e.g. the RangeTool overlays are linked in the y direction even though shared_axes = False and the kdim names are different) I'm actually not entirely against having multiple minimaps (one per data type plot). Thoughts @jbednar, @philippjfr? This would certainly simplify scale bar and stacked y implementations by avoiding data type grouping on a single plot, right?

Screen.Recording.2023-08-16.at.9.55.43.AM.mov

@droumis droumis mentioned this issue Aug 16, 2023
16 tasks
@droumis droumis closed this as completed Jan 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
eeg eeg-viewer eeg-viewer workflow ephys ephys-viewer ephys-viewer workflow
Projects
Status: Done
Development

No branches or pull requests

2 participants