diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index e3d50b93897c..303f26ab7bdb 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -2049,6 +2049,9 @@ def autoscale_view(self, tight=None, scalex=True, scaley=True): y0, y1 = ylocator.view_limits(y0, y1) self.set_ybound(y0, y1) + def _get_axis_list(self): + return (self.xaxis, self.yaxis) + # Drawing @allow_rasterization @@ -2090,8 +2093,8 @@ def draw(self, renderer=None, inframe=False): self.xaxis.set_zorder(2.5) self.yaxis.set_zorder(2.5) else: - artists.remove(self.xaxis) - artists.remove(self.yaxis) + for _axis in self._get_axis_list(): + artists.remove(_axis) if inframe: artists.remove(self.title) diff --git a/lib/mpl_toolkits/mplot3d/axes3d.py b/lib/mpl_toolkits/mplot3d/axes3d.py index 3542c85d6ddd..7225c9e44270 100755 --- a/lib/mpl_toolkits/mplot3d/axes3d.py +++ b/lib/mpl_toolkits/mplot3d/axes3d.py @@ -192,26 +192,29 @@ def set_top_view(self): def _init_axis(self): '''Init 3D axes; overrides creation of regular X/Y axes''' self.w_xaxis = axis3d.XAxis('x', self.xy_viewLim.intervalx, - self.xy_dataLim.intervalx, self) + self.xy_dataLim.intervalx, self) self.xaxis = self.w_xaxis self.w_yaxis = axis3d.YAxis('y', self.xy_viewLim.intervaly, - self.xy_dataLim.intervaly, self) + self.xy_dataLim.intervaly, self) self.yaxis = self.w_yaxis self.w_zaxis = axis3d.ZAxis('z', self.zz_viewLim.intervalx, - self.zz_dataLim.intervalx, self) + self.zz_dataLim.intervalx, self) self.zaxis = self.w_zaxis for ax in self.xaxis, self.yaxis, self.zaxis: ax.init3d() def get_children(self): - return [self.zaxis,] + Axes.get_children(self) + return [self.zaxis, ] + Axes.get_children(self) + + def _get_axis_list(self): + return super(Axes3D, self)._get_axis_list() + (self.zaxis, ) def unit_cube(self, vals=None): minx, maxx, miny, maxy, minz, maxz = vals or self.get_w_lims() xs, ys, zs = ([minx, maxx, maxx, minx, minx, maxx, maxx, minx], - [miny, miny, maxy, maxy, miny, miny, maxy, maxy], - [minz, minz, minz, minz, maxz, maxz, maxz, maxz]) + [miny, miny, maxy, maxy, miny, miny, maxy, maxy], + [minz, minz, minz, minz, maxz, maxz, maxz, maxz]) return list(zip(xs, ys, zs)) def tunit_cube(self, vals=None, M=None): @@ -1718,7 +1721,7 @@ def plot_wireframe(self, X, Y, Z, *args, **kwargs): The `rstride` and `cstride` kwargs set the stride used to sample the input data to generate the graph. If either is 0 - the input data in not sampled along this direction producing a + the input data in not sampled along this direction producing a 3D line plot rather than a wireframe plot. ========== ================================================ @@ -2438,7 +2441,7 @@ def bar3d(self, x, y, z, dx, dy, dz, color='b', self.add_collection(col) self.auto_scale_xyz((minx, maxx), (miny, maxy), (minz, maxz), had_data) - + return col def set_title(self, label, fontdict=None, loc='center', **kwargs):