| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,5 @@ | |||
| 1 | + QuadMesh cursor data disabled by default | ||
| 2 | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
| 3 | + Showing the cursor data of a `.QuadMesh` is now disabled by default, as it has | ||
| 4 | + significant performance issues with large meshes. To manually enable this | ||
| 5 | + use :meth:`.QuadMesh.set_show_cursor_data`. | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -2011,6 +2011,7 @@ def __init__(self, *args, **kwargs): | |||
| 2011 | 2011 | self._shading = shading | |
| 2012 | 2012 | self._bbox = transforms.Bbox.unit() | |
| 2013 | 2013 | self._bbox.update_from_data_xy(self._coordinates.reshape(-1, 2)) | |
| 2014 | + self._show_cursor_data = False | ||
| 2014 | 2015 | # super init delayed after own init because array kwarg requires | |
| 2015 | 2016 | # self._coordinates and self._shading | |
| 2016 | 2017 | super().__init__(**kwargs) | |
@@ -2207,7 +2208,23 @@ def draw(self, renderer): | |||
| 2207 | 2208 | renderer.close_group(self.__class__.__name__) | |
| 2208 | 2209 | self.stale = False | |
| 2209 | 2210 | ||
| 2211 | + def set_show_cursor_data(self, show_cursor_data): | ||
| 2212 | + """ | ||
| 2213 | + Set whether cursor data should be shown. | ||
| 2214 | + | ||
| 2215 | + Notes | ||
| 2216 | + ----- | ||
| 2217 | + This is set to `False` by default for new quad meshes. Showing cursor | ||
| 2218 | + data can have significant performance impacts for large meshes. | ||
| 2219 | + """ | ||
| 2220 | + self._show_cursor_data = show_cursor_data | ||
| 2221 | + | ||
| 2222 | + def get_show_cursor_data(self): | ||
| 2223 | + return self._show_cursor_data | ||
| 2224 | + | ||
| 2210 | 2225 | def get_cursor_data(self, event): | |
| 2226 | + if not self._show_cursor_data: | ||
| 2227 | + return | ||
| 2211 | 2228 | contained, info = self.contains(event) | |
| 2212 | 2229 | if len(info["ind"]) == 1: | |
| 2213 | 2230 | ind, = info["ind"] | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1032,13 +1032,20 @@ def test_quadmesh_cursor_data(): | |||
| 1032 | 1032 | fig, ax = plt.subplots() | |
| 1033 | 1033 | *_, qm = ax.hist2d( | |
| 1034 | 1034 | np.arange(11)**2, 100 + np.arange(11)**2) # width-10 bins | |
| 1035 | + | ||
| 1035 | 1036 | x, y = ax.transData.transform([1, 101]) | |
| 1036 | 1037 | event = MouseEvent('motion_notify_event', fig.canvas, x, y) | |
| 1038 | + | ||
| 1039 | + assert qm.get_show_cursor_data() is False | ||
| 1040 | + assert qm.get_cursor_data(event) is None | ||
| 1041 | + | ||
| 1042 | + qm.set_show_cursor_data(True) | ||
| 1037 | 1043 | assert qm.get_cursor_data(event) == 4 # (0**2, 1**2, 2**2, 3**2) | |
| 1038 | - for out_xydata in []: | ||
| 1039 | - x, y = ax.transData.transform([-1, 101]) | ||
| 1040 | - event = MouseEvent('motion_notify_event', fig.canvas, x, y) | ||
| 1041 | - assert qm.get_cursor_data(event) is None | ||
| 1044 | + | ||
| 1045 | + # Outside the quadmesh bounds | ||
| 1046 | + x, y = ax.transData.transform([-1, 101]) | ||
| 1047 | + event = MouseEvent('motion_notify_event', fig.canvas, x, y) | ||
| 1048 | + assert qm.get_cursor_data(event) is None | ||
| 1042 | 1049 | ||
| 1043 | 1050 | ||
| 1044 | 1051 | def test_get_segments(): | |
| Back | FazBrowse Home | New Git URL |
0 commit comments