Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 6533873

Browse filesBrowse files
committed
Clarify handling of "extreme" values in FloatingAxisArtistHelper.
1. Pre-normalize extremes from None to +/- np.inf from the beginning, rather than recheck for None every time they are accessed. 2. Instead of indexing into the 4-element `extremes` list, just give meaningful names to each element.
1 parent 983bbdd commit 6533873
Copy full SHA for 6533873

File tree

Expand file treeCollapse file tree

1 file changed

+16
-17
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+16
-17
lines changed

‎lib/mpl_toolkits/axisartist/grid_helper_curvelinear.py

Copy file name to clipboardExpand all lines: lib/mpl_toolkits/axisartist/grid_helper_curvelinear.py
+16-17Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,16 @@ def __init__(self, grid_helper, nth_coord, value, axis_direction=None):
8585
super().__init__(nth_coord, value)
8686
self.value = value
8787
self.grid_helper = grid_helper
88-
self._extremes = None, None
88+
self._extremes = -np.inf, np.inf
8989

9090
self._get_line_path = None # a method that returns a Path.
9191
self._line_num_points = 100 # number of points to create a line
9292

9393
def set_extremes(self, e1, e2):
94+
if e1 is None:
95+
e1 = -np.inf
96+
if e2 is None:
97+
e2 = np.inf
9498
self._extremes = e1, e2
9599

96100
def update_lim(self, axes):
@@ -102,36 +106,31 @@ def update_lim(self, axes):
102106
extremes = grid_finder.extreme_finder(grid_finder.inv_transform_xy,
103107
x1, y1, x2, y2)
104108

105-
extremes = list(extremes)
106-
e1, e2 = self._extremes # ranges of other coordinates
109+
lon_min, lon_max, lat_min, lat_max = extremes
110+
e_min, e_max = self._extremes # ranges of other coordinates
107111
if self.nth_coord == 0:
108-
if e1 is not None:
109-
extremes[2] = max(e1, extremes[2])
110-
if e2 is not None:
111-
extremes[3] = min(e2, extremes[3])
112+
lat_min = max(e_min, lat_min)
113+
lat_max = min(e_max, lat_max)
112114
elif self.nth_coord == 1:
113-
if e1 is not None:
114-
extremes[0] = max(e1, extremes[0])
115-
if e2 is not None:
116-
extremes[1] = min(e2, extremes[1])
115+
lon_min = max(e_min, lon_min)
116+
lon_max = min(e_max, lon_max)
117117

118-
lon_min, lon_max, lat_min, lat_max = extremes
119118
lon_levs, lon_n, lon_factor = \
120119
grid_finder.grid_locator1(lon_min, lon_max)
121120
lat_levs, lat_n, lat_factor = \
122121
grid_finder.grid_locator2(lat_min, lat_max)
123122

124123
if self.nth_coord == 0:
125-
xx0 = np.linspace(self.value, self.value, self._line_num_points)
126-
yy0 = np.linspace(extremes[2], extremes[3], self._line_num_points)
124+
xx0 = np.full(self._line_num_points, self.value)
125+
yy0 = np.linspace(lat_min, lat_max, self._line_num_points)
127126
xx, yy = grid_finder.transform_xy(xx0, yy0)
128127
elif self.nth_coord == 1:
129-
xx0 = np.linspace(extremes[0], extremes[1], self._line_num_points)
130-
yy0 = np.linspace(self.value, self.value, self._line_num_points)
128+
xx0 = np.linspace(lon_min, lon_max, self._line_num_points)
129+
yy0 = np.full(self._line_num_points, self.value)
131130
xx, yy = grid_finder.transform_xy(xx0, yy0)
132131

133132
self.grid_info = {
134-
"extremes": extremes,
133+
"extremes": (lon_min, lon_max, lat_min, lat_max),
135134
"lon_info": (lon_levs, lon_n, _deprecate_factor_none(lon_factor)),
136135
"lat_info": (lat_levs, lat_n, _deprecate_factor_none(lat_factor)),
137136
"lon_labels": grid_finder.tick_formatter1(

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.