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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy