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

Skip to content

Commit a6d5fa5

Browse files
committed
Numpyfy tick handling code in Axis3D.
1 parent 17509c2 commit a6d5fa5

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
@@ -247,11 +247,8 @@ def draw(self, renderer):
247247
self.line.draw(renderer)
248248

249249
# Grid points where the planes meet
250-
xyz0 = []
251-
for tick in ticks:
252-
coord = minmax.copy()
253-
coord[index] = tick.get_loc()
254-
xyz0.append(coord)
250+
xyz0 = np.tile(minmax, (len(ticks), 1))
251+
xyz0[:, index] = [tick.get_loc() for tick in ticks]
255252

256253
# Draw labels
257254
peparray = np.asanyarray(pep)
@@ -357,30 +354,25 @@ def draw(self, renderer):
357354
self.offsetText.draw(renderer)
358355

359356
# Draw grid lines
360-
if len(xyz0) > 0:
357+
if self.axes._draw_grid and len(ticks):
361358
# Grid points at end of one plane
362-
xyz1 = copy.deepcopy(xyz0)
359+
xyz1 = xyz0.copy()
363360
newindex = (index + 1) % 3
364361
newval = get_flip_min_max(xyz1[0], newindex, mins, maxs)
365-
for i in range(len(ticks)):
366-
xyz1[i][newindex] = newval
362+
xyz1[:, newindex] = newval
367363

368364
# Grid points at end of the other plane
369-
xyz2 = copy.deepcopy(xyz0)
365+
xyz2 = xyz0.copy()
370366
newindex = (index + 2) % 3
371367
newval = get_flip_min_max(xyz2[0], newindex, mins, maxs)
372-
for i in range(len(ticks)):
373-
xyz2[i][newindex] = newval
374-
375-
lines = list(zip(xyz1, xyz0, xyz2))
376-
if self.axes._draw_grid:
377-
self.gridlines.set_segments(lines)
378-
self.gridlines.set_color([info['grid']['color']] * len(lines))
379-
self.gridlines.set_linewidth(
380-
[info['grid']['linewidth']] * len(lines))
381-
self.gridlines.set_linestyle(
382-
[info['grid']['linestyle']] * len(lines))
383-
self.gridlines.draw(renderer, project=True)
368+
xyz2[:, newindex] = newval
369+
370+
lines = np.stack([xyz1, xyz0, xyz2], axis=1)
371+
self.gridlines.set_segments(lines)
372+
self.gridlines.set_color(info['grid']['color'])
373+
self.gridlines.set_linewidth(info['grid']['linewidth'])
374+
self.gridlines.set_linestyle(info['grid']['linestyle'])
375+
self.gridlines.draw(renderer, project=True)
384376

385377
# Draw ticks
386378
tickdir = info['tickdir']

0 commit comments

Comments
 (0)