MCPcopy Index your code
hub / github.com/matplotlib/matplotlib / get_grid_info

Method get_grid_info

lib/mpl_toolkits/axisartist/grid_finder.py:172–223  ·  view source on GitHub ↗

Compute positioning information for grid lines and ticks, given the axes' data *bbox*.

(self, *args, **kwargs)

Source from the content-addressed store, hash-verified

170 else fmt(direction, factor, levels))
171
172 def get_grid_info(self, *args, **kwargs):
173 """
174 Compute positioning information for grid lines and ticks, given the
175 axes' data *bbox*.
176 """
177 params = _api.select_matching_signature(
178 [lambda x1, y1, x2, y2: locals(), lambda bbox: locals()], *args, **kwargs)
179 if "x1" in params:
180 _api.warn_deprecated("3.11", message=(
181 "Passing extents as separate arguments to get_grid_info is deprecated "
182 "since %(since)s and support will be removed %(removal)s; pass a "
183 "single bbox instead."))
184 bbox = Bbox.from_extents(
185 params["x1"], params["y1"], params["x2"], params["y2"])
186 else:
187 bbox = params["bbox"]
188
189 tbbox = self.extreme_finder._find_transformed_bbox(
190 self.get_transform().inverted(), bbox)
191
192 lon_levs, lon_n, lon_factor = self.grid_locator1(*tbbox.intervalx)
193 lat_levs, lat_n, lat_factor = self.grid_locator2(*tbbox.intervaly)
194
195 lon_values = np.asarray(lon_levs[:lon_n]) / lon_factor
196 lat_values = np.asarray(lat_levs[:lat_n]) / lat_factor
197
198 lon_lines, lat_lines = self._get_raw_grid_lines(lon_values, lat_values, tbbox)
199
200 bbox_expanded = bbox.expanded(1 + 2e-10, 1 + 2e-10)
201 grid_info = {"extremes": tbbox} # "lon", "lat" keys filled below.
202
203 for idx, lon_or_lat, levs, factor, values, lines in [
204 (1, "lon", lon_levs, lon_factor, lon_values, lon_lines),
205 (2, "lat", lat_levs, lat_factor, lat_values, lat_lines),
206 ]:
207 grid_info[lon_or_lat] = gi = {
208 "lines": lines,
209 "ticks": {"left": [], "right": [], "bottom": [], "top": []},
210 }
211 for xys, v, level in zip(lines, values, levs):
212 all_crossings = _find_line_box_crossings(xys, bbox_expanded)
213 for side, crossings in zip(
214 ["left", "right", "bottom", "top"], all_crossings):
215 for crossing in crossings:
216 gi["ticks"][side].append({"level": level, "loc": crossing})
217 for side in gi["ticks"]:
218 levs = [tick["level"] for tick in gi["ticks"][side]]
219 labels = self._format_ticks(idx, side, factor, levs)
220 for tick, label in zip(gi["ticks"][side], labels):
221 tick["label"] = label
222
223 return grid_info
224
225 def _get_raw_grid_lines(self, lon_values, lat_values, bbox):
226 trans = self.get_transform()

Callers 1

_update_gridMethod · 0.80

Calls 8

get_transformMethod · 0.95
_get_raw_grid_linesMethod · 0.95
_format_ticksMethod · 0.95
_find_line_box_crossingsFunction · 0.85
from_extentsMethod · 0.80
expandedMethod · 0.80
invertedMethod · 0.45

Tested by

no test coverage detected