Skip to content

Commit b32a7f8

Browse files
Have line scaling code fail gracefully for
invalid widths, (fixing geo projections).
1 parent 33e9c9c commit b32a7f8

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

matplotview/_transform_renderer.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,18 +85,24 @@ def bounding_axes(self):
8585
return self.__bounding_axes
8686

8787
def _scale_gc(self, gc):
88-
transfer_transform = self._get_transfer_transform(IdentityTransform())
89-
new_gc = self.__renderer.new_gc()
90-
new_gc.copy_properties(gc)
88+
with np.errstate(all='ignore'):
89+
transfer_transform = self._get_transfer_transform(
90+
IdentityTransform()
91+
)
92+
new_gc = self.__renderer.new_gc()
93+
new_gc.copy_properties(gc)
94+
95+
unit_box = Bbox.from_bounds(0, 0, 1, 1)
96+
unit_box = transfer_transform.transform_bbox(unit_box)
97+
mult_factor = np.sqrt(unit_box.width * unit_box.height)
9198

92-
unit_box = Bbox.from_bounds(0, 0, 1, 1)
93-
unit_box = transfer_transform.transform_bbox(unit_box)
94-
mult_factor = np.sqrt(unit_box.width * unit_box.height)
99+
if(mult_factor == 0 or (not np.isfinite(mult_factor))):
100+
return new_gc
95101

96-
new_gc.set_linewidth(gc.get_linewidth() * mult_factor)
97-
new_gc._hatch_linewidth = gc.get_hatch_linewidth() * mult_factor
102+
new_gc.set_linewidth(gc.get_linewidth() * mult_factor)
103+
new_gc._hatch_linewidth = gc.get_hatch_linewidth() * mult_factor
98104

99-
return new_gc
105+
return new_gc
100106

101107
def _get_axes_display_box(self):
102108
"""

matplotview/tests/test_view_rendering.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ def test_map_projection_view(fig_test, fig_ref):
172172
ax_t1.plot(x, y)
173173
ax_t1.add_patch(circ_gen())
174174
view(ax_t2, ax_t1)
175-
ax_t2.set_linescaling(False)
175+
#ax_t2.set_linescaling(False)
176176

177177
# Reference...
178178
ax_r1 = fig_ref.add_subplot(1, 2, 1, projection="hammer")

0 commit comments

Comments
 (0)