Implement get_cursor_data for QuadMesh.#19908
Conversation
| 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): |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
timhoffm
left a comment
There was a problem hiding this comment.
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).
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
pytestpasses).flake8on changed files to check).flake8-docstringsand runflake8 --docstring-convention=all).doc/users/next_whats_new/(follow instructions in README.rst there).doc/api/next_api_changes/(follow instructions in README.rst there).