Skip to content

Feature request: Add advanced zoom and inspect feature to GUI for more productivity #17658

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

Closed
drtrigon opened this issue Jun 17, 2020 · 5 comments · Fixed by #17687
Closed

Feature request: Add advanced zoom and inspect feature to GUI for more productivity #17658

drtrigon opened this issue Jun 17, 2020 · 5 comments · Fixed by #17687
Milestone

Comments

@drtrigon
Copy link

Feature request

I would like to add more features to the default GUI. Advanced zooming that gives you more control on how to zoom. And an "object inspector" that allows to manipulate the plot. Both would allow to play more with the plots and increase productivity by helping you to get what you would like to see faster.

  1. For zooming we have a box only, that means for example if I want to zoom on vertical axis only it is not possible without changing the horizonal axis too. Even if I try to include the whole horizontal axis I will always cut a bit (on the left and on the right side) and thus change the part visible. If I have to zoom multiple times that gets worse for every step. I would like to propose a horizontal and vertical zooming mode that zooms on a bar instead of a box. That means when e.g. selecting the vertical zoom mode the mouse movement spans two horizontal lines (instead of a box) and only the vertical distance of these can be changed, ther horizontal movement of the mouse is not relevant. Thes same for a horizontal zoom mode. Software that has that feature is e.g. LabVIEW.

  2. For assembling the plot I would like to have an object inspector (separate window) that shows you the tree of objects and classes that make the plot. Having furthermore the possibility to manipulate this tree, e.g. add a grid, change colors, removing and adding lines, legend, etc. Software that has a similar feature is e.g. MayaVi and it's pipeline. So for example for a very simple plot of a line you would e.g. get:

Figure
 +--- Axes
       +--- Line

(in the line is also the data object, that could e.g. be re-used for adding more lines)

It is a bit hard to describe but I hope the description is understandable. If not, I would be happy to add more information or answer questions - please ask!

@timhoffm
Copy link
Member

timhoffm commented Jun 17, 2020

Vertical/horizontal zoom modes sound reasonable. That should be implemented via ctrl/shift/alt keys.

Re: object inspector
Core Matplotlib prioritizes code-based plot generation. A full GUI for manipulating the plot is beyond the scope of the project. Check out https://pylustrator.readthedocs.io/en/latest/ for a GUI.

Technical note: Please do not put multiple unrelated requests in one ticket. That makes the discussions harder to follow.

@anntzer
Copy link
Contributor

anntzer commented Jun 17, 2020

h/v zoom already exists, it's the x/y keys (https://matplotlib.org/devdocs/users/interactive.html#navigation-keyboard-shortcuts).

@anntzer anntzer closed this as completed Jun 17, 2020
@drtrigon
Copy link
Author

Vertical/horizontal zoom modes: Tested it and it works exactly as expected - that's great news, thanks! However what about having a drop down menu when clicking on the zoom button in order to select? Or at least some hint on how to use keys. I use matplotlib for years now and was not aware of that - very handy - feature.

Object inspector: Thanks for the hint - pylustrator looks very interesting and could be exactly what I was looking for - will give it a try!

Technical note: I just wanted to get the discussion rolling and did not want to open multiple issues for that - sorry. Shall I - for documentation - split this issue up in two? Or is it fine for now? (will open multiple issues next time... ;)

@anntzer
Copy link
Contributor

anntzer commented Jun 19, 2020

See #17687 for better doc. I think this can be tracked here.
It's a bit easier if each issue is self-contained but no need to overly worry about it either.

@tacaswell
Copy link
Member

tacaswell commented Jun 19, 2020

We should also pull a version of mouse-wheel zooming into the core library (ex https://gist.github.com/tacaswell/3144287)

@QuLogic QuLogic added this to the v3.3.0 milestone Jun 20, 2020
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

Successfully merging a pull request may close this issue.

5 participants