From 74ed30960e7b0f41c3e364802f875c8a49992695 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Thu, 24 Mar 2022 19:06:27 -0400 Subject: [PATCH 1/2] Backport PR #22691: FIX: remove toggle on QuadMesh cursor data --- .../next_api_changes/behavior/22254-DS.rst | 5 ----- .../next_api_changes/behavior/22691-JMK.rst | 6 ++++++ lib/matplotlib/collections.py | 17 --------------- lib/matplotlib/tests/test_collections.py | 21 ------------------- 4 files changed, 6 insertions(+), 43 deletions(-) delete mode 100644 doc/api/next_api_changes/behavior/22254-DS.rst create mode 100644 doc/api/next_api_changes/behavior/22691-JMK.rst diff --git a/doc/api/next_api_changes/behavior/22254-DS.rst b/doc/api/next_api_changes/behavior/22254-DS.rst deleted file mode 100644 index 83e53ae60477..000000000000 --- a/doc/api/next_api_changes/behavior/22254-DS.rst +++ /dev/null @@ -1,5 +0,0 @@ -QuadMesh cursor data disabled by default -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Showing the cursor data of a `.QuadMesh` is now disabled by default, as it has -significant performance issues with large meshes. To manually enable this -use :meth:`.QuadMesh.set_show_cursor_data`. diff --git a/doc/api/next_api_changes/behavior/22691-JMK.rst b/doc/api/next_api_changes/behavior/22691-JMK.rst new file mode 100644 index 000000000000..24519d97e371 --- /dev/null +++ b/doc/api/next_api_changes/behavior/22691-JMK.rst @@ -0,0 +1,6 @@ +QuadMesh mouseover defaults to False +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +New in 3.5, `.QuadMesh.get_cursor_data` allows display of data values +under the cursor. However, this can be very slow for large meshes, so +by `.QuadMesh.set_mouseover` defaults to *False*. \ No newline at end of file diff --git a/lib/matplotlib/collections.py b/lib/matplotlib/collections.py index b13a8868e758..05b78b42cf62 100644 --- a/lib/matplotlib/collections.py +++ b/lib/matplotlib/collections.py @@ -2011,7 +2011,6 @@ def __init__(self, *args, **kwargs): self._shading = shading self._bbox = transforms.Bbox.unit() self._bbox.update_from_data_xy(self._coordinates.reshape(-1, 2)) - self._show_cursor_data = False # super init delayed after own init because array kwarg requires # self._coordinates and self._shading super().__init__(**kwargs) @@ -2210,23 +2209,7 @@ def draw(self, renderer): renderer.close_group(self.__class__.__name__) self.stale = False - def set_show_cursor_data(self, show_cursor_data): - """ - Set whether cursor data should be shown. - - Notes - ----- - This is set to `False` by default for new quad meshes. Showing cursor - data can have significant performance impacts for large meshes. - """ - self._show_cursor_data = show_cursor_data - - def get_show_cursor_data(self): - return self._show_cursor_data - def get_cursor_data(self, event): - if not self._show_cursor_data: - return contained, info = self.contains(event) if len(info["ind"]) == 1: ind, = info["ind"] diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py index 583d1489a668..407db8106afe 100644 --- a/lib/matplotlib/tests/test_collections.py +++ b/lib/matplotlib/tests/test_collections.py @@ -7,7 +7,6 @@ import matplotlib as mpl import matplotlib.pyplot as plt -from matplotlib.backend_bases import MouseEvent import matplotlib.collections as mcollections import matplotlib.colors as mcolors import matplotlib.transforms as mtransforms @@ -1044,26 +1043,6 @@ def test_array_wrong_dimensions(): pc.update_scalarmappable() -def test_quadmesh_cursor_data(): - fig, ax = plt.subplots() - *_, qm = ax.hist2d( - np.arange(11)**2, 100 + np.arange(11)**2) # width-10 bins - - x, y = ax.transData.transform([1, 101]) - event = MouseEvent('motion_notify_event', fig.canvas, x, y) - - assert qm.get_show_cursor_data() is False - assert qm.get_cursor_data(event) is None - - qm.set_show_cursor_data(True) - assert qm.get_cursor_data(event) == 4 # (0**2, 1**2, 2**2, 3**2) - - # Outside the quadmesh bounds - x, y = ax.transData.transform([-1, 101]) - event = MouseEvent('motion_notify_event', fig.canvas, x, y) - assert qm.get_cursor_data(event) is None - - def test_get_segments(): segments = np.tile(np.linspace(0, 1, 256), (2, 1)).T lc = LineCollection([segments]) From cdd86d117b66e7916707236189170c5c41a004da Mon Sep 17 00:00:00 2001 From: Oscar Gustafsson Date: Tue, 29 Mar 2022 08:25:48 +0200 Subject: [PATCH 2/2] Update doc/api/next_api_changes/behavior/22691-JMK.rst --- doc/api/next_api_changes/behavior/22691-JMK.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/next_api_changes/behavior/22691-JMK.rst b/doc/api/next_api_changes/behavior/22691-JMK.rst index 24519d97e371..958d40963fa3 100644 --- a/doc/api/next_api_changes/behavior/22691-JMK.rst +++ b/doc/api/next_api_changes/behavior/22691-JMK.rst @@ -3,4 +3,4 @@ QuadMesh mouseover defaults to False New in 3.5, `.QuadMesh.get_cursor_data` allows display of data values under the cursor. However, this can be very slow for large meshes, so -by `.QuadMesh.set_mouseover` defaults to *False*. \ No newline at end of file +by ``.QuadMesh.set_mouseover`` defaults to *False*. \ No newline at end of file