Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e6c1ff1

Browse files
authored
Merge pull request #13364 from anntzer/axis3d-numpy
Numpyfy tick handling code in Axis3D.
2 parents e5b4f79 + e3836c5 commit e6c1ff1

File tree

1 file changed

+14
-22
lines changed

1 file changed

+14
-22
lines changed

lib/mpl_toolkits/mplot3d/axis3d.py

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -240,11 +240,8 @@ def draw(self, renderer):
240240
self.line.draw(renderer)
241241

242242
# Grid points where the planes meet
243-
xyz0 = []
244-
for tick in ticks:
245-
coord = minmax.copy()
246-
coord[index] = tick.get_loc()
247-
xyz0.append(coord)
243+
xyz0 = np.tile(minmax, (len(ticks), 1))
244+
xyz0[:, index] = [tick.get_loc() for tick in ticks]
248245

249246
# Draw labels
250247
peparray = np.asanyarray(pep)
@@ -350,30 +347,25 @@ def draw(self, renderer):
350347
self.offsetText.draw(renderer)
351348

352349
# Draw grid lines
353-
if len(xyz0) > 0:
350+
if self.axes._draw_grid and len(ticks):
354351
# Grid points at end of one plane
355-
xyz1 = copy.deepcopy(xyz0)
352+
xyz1 = xyz0.copy()
356353
newindex = (index + 1) % 3
357354
newval = get_flip_min_max(xyz1[0], newindex, mins, maxs)
358-
for i in range(len(ticks)):
359-
xyz1[i][newindex] = newval
355+
xyz1[:, newindex] = newval
360356

361357
# Grid points at end of the other plane
362-
xyz2 = copy.deepcopy(xyz0)
358+
xyz2 = xyz0.copy()
363359
newindex = (index + 2) % 3
364360
newval = get_flip_min_max(xyz2[0], newindex, mins, maxs)
365-
for i in range(len(ticks)):
366-
xyz2[i][newindex] = newval
367-
368-
lines = list(zip(xyz1, xyz0, xyz2))
369-
if self.axes._draw_grid:
370-
self.gridlines.set_segments(lines)
371-
self.gridlines.set_color([info['grid']['color']] * len(lines))
372-
self.gridlines.set_linewidth(
373-
[info['grid']['linewidth']] * len(lines))
374-
self.gridlines.set_linestyle(
375-
[info['grid']['linestyle']] * len(lines))
376-
self.gridlines.draw(renderer, project=True)
361+
xyz2[:, newindex] = newval
362+
363+
lines = np.stack([xyz1, xyz0, xyz2], axis=1)
364+
self.gridlines.set_segments(lines)
365+
self.gridlines.set_color(info['grid']['color'])
366+
self.gridlines.set_linewidth(info['grid']['linewidth'])
367+
self.gridlines.set_linestyle(info['grid']['linestyle'])
368+
self.gridlines.draw(renderer, project=True)
377369

378370
# Draw ticks
379371
tickdir = info['tickdir']

0 commit comments

Comments
 (0)