Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Implement get_cursor_data for QuadMesh. #19908

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

Merged
merged 1 commit into from
May 27, 2021
Merged

Conversation

anntzer
Copy link
Contributor

@anntzer anntzer commented Apr 8, 2021

The motivation is actually to provide get_cursor_data for hist2d, which
uses a QuadMesh to draw itself (see the test).

As it turns out, Collection.contains already contains the relevant code
to find which path contains the mouse event, so just reuse that.

PR Summary

PR Checklist

  • Has pytest style unit tests (and pytest passes).
  • Is Flake 8 compliant (run flake8 on changed files to check).
  • New features are documented, with examples if plot related.
  • Documentation is sphinx and numpydoc compliant (the docs should build without error).
  • Conforms to Matplotlib style conventions (install flake8-docstrings and run flake8 --docstring-convention=all).
  • New features have an entry in doc/users/next_whats_new/ (follow instructions in README.rst there).
  • API changes documented in doc/api/next_api_changes/ (follow instructions in README.rst there).

data_str = ', '.join('{:0.3g}'.format(item) for item in data
if isinstance(item, Number))
return "[" + data_str + "]"
if np.ndim(data) == 0 and getattr(self, "colorbar", None):
Copy link
Member

@timhoffm timhoffm Apr 8, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there better criterion than having a colorbar?

You still have a value (~color) in the mesh even if that's not explained via a colorbar. It would be nice if this works for a simple plt.pcolormesh() call. Also if you plot on multiple Axes with "shared" colors and use only one colorbar as description, AFAIK only one of the Mappables will be associated with the colorbar.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "colorbar-for-value-formatting" discussion is at #12473 (I personally just patch matplotlib locally with that PR...). I think it's orthogonal to the feature here?

The motivation is actually to provide get_cursor_data for hist2d, which
uses a QuadMesh to draw itself (see the test).

As it turns out, Collection.contains already contains the relevant code
to find which path contains the mouse event, so just reuse that.
Copy link
Member

@timhoffm timhoffm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While maybe not the 100% solution, this is an improvement for common cases and still has the same behavior othewise (e.g. if there is no colorbar).

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

Successfully merging this pull request may close these issues.

4 participants