Skip to content

Commit 645dfc8

Browse files
Code review updates
1 parent 1516928 commit 645dfc8

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

lib/mpl_toolkits/mplot3d/art3d.py

+8-13
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,10 @@ def set_3d_properties(self, z=0, zdir='z', axlim_clip=False):
180180
def draw(self, renderer):
181181
if self._axlim_clip:
182182
mask = _viewlim_mask(self._x, self._y, self._z, self.axes)
183-
pos3d = np.ma.array((self._x, self._y, self._z),
184-
dtype=float, mask=mask).filled(np.nan)
183+
pos3d = np.array([self._x, self._y, self._z], dtype=float)
184+
pos3d[mask] = np.nan
185185
else:
186-
pos3d = np.asanyarray([self._x, self._y, self._z])
186+
pos3d = np.array([self._x, self._y, self._z])
187187

188188
proj = proj3d._proj_trans_points([pos3d, pos3d + self._dir_vec], self.axes.M)
189189
dx = proj[0][1] - proj[0][0]
@@ -465,7 +465,8 @@ def do_3d_projection(self):
465465
self.axes)
466466
if np.any(viewlim_mask):
467467
# broadcast mask to 3D
468-
viewlim_mask = viewlim_mask[..., np.newaxis].repeat(3, axis=-1)
468+
viewlim_mask = np.broadcast_to(viewlim_mask[..., np.newaxis],
469+
(*viewlim_mask.shape, 3))
469470
mask = mask | viewlim_mask
470471
xyzs = np.ma.array(proj3d._proj_transform_vectors(segments, self.axes.M),
471472
mask=mask)
@@ -1100,8 +1101,8 @@ def _get_vector(self, segments3d):
11001101
"""
11011102
if isinstance(segments3d, np.ndarray):
11021103
if segments3d.ndim != 3 or segments3d.shape[-1] != 3:
1103-
raise ValueError("segments3d must be a MxNx3 array, but got " +
1104-
"shape {}".format(segments3d.shape))
1104+
raise ValueError("segments3d must be a MxNx3 array, but got "
1105+
f"shape {segments3d.shape}")
11051106
if isinstance(segments3d, np.ma.MaskedArray):
11061107
self._faces = segments3d.data
11071108
self._invalid_vertices = segments3d.mask.any(axis=-1)
@@ -1117,8 +1118,6 @@ def _get_vector(self, segments3d):
11171118
segments[i, :len(face)] = face
11181119
self._faces = segments
11191120
self._invalid_vertices = np.arange(max_verts) >= num_verts[:, None]
1120-
assert self._invalid_vertices is False or \
1121-
self._invalid_vertices.shape == self._faces.shape[:-1]
11221121

11231122
def set_verts(self, verts, closed=True):
11241123
"""
@@ -1184,11 +1183,7 @@ def do_3d_projection(self):
11841183
needs_masking = np.any(self._invalid_vertices)
11851184
num_faces = len(self._faces)
11861185
mask = self._invalid_vertices
1187-
1188-
# Some faces might contain masked vertices, so we want to ignore any
1189-
# errors that those might cause
1190-
with np.errstate(invalid='ignore', divide='ignore'):
1191-
pfaces = proj3d._proj_transform_vectors(self._faces, self.axes.M)
1186+
pfaces = proj3d._proj_transform_vectors(self._faces, self.axes.M)
11921187

11931188
if self._axlim_clip:
11941189
viewlim_mask = _viewlim_mask(self._faces[..., 0], self._faces[..., 1],

0 commit comments

Comments
 (0)