-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Compare everything with everything else #840
base: master
Are you sure you want to change the base?
Conversation
Two minor things I was not so sure about:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
HI @da-h - this is an interesting feature, but it's also a fairly complicated one to get right. I really like the eager approach here to get all of the pane types functioning and represented, though some notes on a design that could be considered:
It could be reasonable to create some kind of abstract ComparePane
which would be fed data when in compare mode, and then the ComparePane
can contain both specialized behavior (treating scatterplots in a merge way, perhaps images in side-by-side), alongside default behavior (either what you've implemented currently, or side-by-side as well). compare_envs
in general is in need of a refactor, so if design changes are required for something like this I'm happy to work through them (and ensure everything is tested!). What are your thoughts here?
Thanks the feedback! I too thought about a side-by-side feature as well, not only for images, but for arbitrary plots as well. I am yet unsure how to implement this in a fitting way: by including a global switch for side-by-side vs. tabbed view or by giving every Pane a button to switch between those two modes, what are the defaults, etc. I am also unsure in which way to go here abstractly. I see two possibilities
In any case or outcome of the discussion, I am happy to implement a concrete proposal that takes backward compatibility into account and resubmit the PR. |
Sorry for the delays on the continued review here - this is a hard one to navigate, especially when considering things like how it interacts with some of the other quality features you're adding (like #837 or #846). I think generally option (1) is the easier route, and that ultimately combining it with some of the other functionality we already have (like saved views) then it provides a similar type of capability that (2) would provide, without the headache of a substantial refactor. I can outline a clearer sample architecture next week for what I imagine this would look like if you'd like to pursue that! |
This is true. Also, (1) could lead a more gradual route to (2) with the possibility to change the defaults later (i.e. allowing every Pane to be comparable or so).
Sure, your suggestions are very welcome! ;) |
Description
This PR enables to compare any pane with any other pane using the same title.
(See video below).
Motivation and Context
Visdom's compare feature is one of its selling points, but unfortunately is only supported by scatter plots.
There are issues asking for such a feature, i.e.
(Works even with image-sliders enabled).
This PR tries to increase the usability of this feature by enabling to compare any two window contents that share the same title.
(This design decision is due to its previous behavior, where scatter plots were merged based on their title.)
In more detail:
compare_env
fromserver.py
has been rewritten completely, mostly falling back to the previous behavior in case of scatter plots.env
in the compare-list did not contain a window a later env did contain, the window would not show up. The new behavior shows a window if anyenv
contains it.How Has This Been Tested?
Added a
title
to every plot in mydemo.py
-copy. However, I strongly think that this feature should be tested thoroughly before merging. ;)Screenshots (if appropriate):
(The textbox says: "Actually, the new feature can change any content to any other content using the same title.")
Types of changes
Checklist: