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

Keep zoom level and axis positions fixed between files #1572

Open
jpmvferreira opened this issue Feb 12, 2024 · 5 comments
Open

Keep zoom level and axis positions fixed between files #1572

jpmvferreira opened this issue Feb 12, 2024 · 5 comments
Labels
enhancement New feature or request epic Issue that will need to be split up later on

Comments

@jpmvferreira
Copy link

Given that this tool is made to quickly have a glance at data (1D, 2D or 3D), I think it would be convenient to add an option that allows the user to keep the same zoom level and axis positions fixed as the user is browsing through different files.

To illustrate what I mean, let us say that I have a HDF5 file where each dataset corresponds to a 3D array at a given time.
If I want to see the differences at z=0 with time, I just set a fixed data range for the color map and browse the different files.

normal.browsing.mp4

However, if I happen to want to compare the snapshots at different values of z, then every time I change between datatsets I have to manually adjust the z coordinate correspondingly (apologies for the ghost cursor in the next video).

changing.z-axis.mp4

Also, if I only want to see differences in a particular region, the zoom level also changes as I go through the datasets.

changing.zoom.level.mp4

The two previous issues are also true when it comes to line plots, with an additional issue: whereas in the heatmap you can choose an arbitrary data range, here you can either set "auto-scale" on or off, but off does not allow you to pick any values whatsoever.

Apologies for not following the feature request template that was provided, but I feel like I could explain myself better this way.

@jpmvferreira jpmvferreira added the enhancement New feature or request label Feb 12, 2024
@axelboc axelboc added the epic Issue that will need to be split up later on label Feb 15, 2024
@axelboc
Copy link
Contributor

axelboc commented Feb 15, 2024

@jpmvferreira thanks for the feedback! It's really three requests in one, but we're on board with all of them. 😊 Here is what I'm thinking of implementing in more details:

  • Maintain dimension mapping+slicing state when switching between two datasets with the same exact dimensions, and forget any memorised state as soon as a dataset with different dimensions is selected.
  • Show Pin zoom button next to Reset zoom in floating toolbar once the user starts zooming; when the user toggles it on, maintain zoom level across datasets for the corresponding low-level visualization (heatmap, line, RGB, etc.) until the user toggles it off, clicks "Reset zoom", or zooms out completely.
  • Replace Auto-scale button in Line vis toolbar with custom domain slider like in Heatmap vis toolbar.

Would that answer your needs?

@jpmvferreira
Copy link
Author

Yes those looks like perfect solutions!

@joaonizer
Copy link

I would benefit of this enhancement! I would also add the possibility to keep the dimensions order the same (xD1, yD2 or vice versa) across datasets in the same low-level visualization.

@axelboc
Copy link
Contributor

axelboc commented Jun 25, 2024

The simplest of the three feature requests, the replacement of the Autoscale toggle by a domain widget in the Line visualization's toolbar, is now fixed and available in myHDF5 and the VS Code extension:

image

I'll investigate persisting the dimension mapping state a bit more when I get the time.

@axelboc
Copy link
Contributor

axelboc commented Oct 7, 2024

H5Web 13 now preserves dimension mapping/slicing when possible:

maintain-dim-mapping

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request epic Issue that will need to be split up later on
Projects
None yet
Development

No branches or pull requests

3 participants