Skip to content

Commit 7595723

Browse files
committed
Add back overlapping +360 gridline fix
1 parent 0f4e03d commit 7595723

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

proplot/axes/geo.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -844,9 +844,22 @@ def _axes_domain(self, *args, **kwargs):
844844
lon_0 = self.axes.projection.proj4_params.get('lon_0', 0)
845845
x_range = np.asarray(x_range) + lon_0
846846
return x_range, y_range
847+
# Cartopy >= 0.18 monkey patch. Fixes issue where cartopy draws an overlapping
848+
# dateline gridline (e.g. polar maps). See the nx -= 1 line in _draw_gridliner
849+
def _draw_gridliner(self, *args, **kwargs): # noqa: E306
850+
result = type(self)._draw_gridliner(self, *args, **kwargs)
851+
if _version_cartopy >= '0.18':
852+
lon_lim, _ = self._axes_domain()
853+
if abs(np.diff(lon_lim)) == abs(np.diff(self.crs.x_limits)):
854+
for collection in self.xline_artists:
855+
if not getattr(collection, '_cartopy_fix', False):
856+
collection.get_paths().pop(-1)
857+
collection._cartopy_fix = True
858+
return result
847859
# Return the gridliner with monkey patch
848860
gl = self.gridlines(crs=ccrs.PlateCarree())
849861
gl._axes_domain = _axes_domain.__get__(gl)
862+
gl._draw_gridliner = _draw_gridliner.__get__(gl)
850863
gl.xlines = gl.ylines = False
851864
self._toggle_gridliner_labels(gl, False, False, False, False, False)
852865
return gl

0 commit comments

Comments
 (0)