diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index 5cef5b222759..50607f5ccc1e 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -827,13 +827,13 @@ def draw(self, renderer): dsu = [] for a in self.patches: - dsu.append( (a.get_zorder(), a.draw, [renderer])) + dsu.append( (a.get_zorder(), a, a.draw, [renderer])) for a in self.lines: - dsu.append( (a.get_zorder(), a.draw, [renderer])) + dsu.append( (a.get_zorder(), a, a.draw, [renderer])) for a in self.artists: - dsu.append( (a.get_zorder(), a.draw, [renderer])) + dsu.append( (a.get_zorder(), a, a.draw, [renderer])) # override the renderer default if self.suppressComposite # is not None @@ -844,7 +844,7 @@ def draw(self, renderer): if len(self.images)<=1 or not_composite or \ not allequal([im.origin for im in self.images]): for a in self.images: - dsu.append( (a.get_zorder(), a.draw, [renderer])) + dsu.append( (a.get_zorder(), a, a.draw, [renderer])) else: # make a composite image blending alpha # list of (_image.Image, ox, oy) @@ -866,21 +866,22 @@ def draw_composite(): renderer.draw_image(gc, l, b, im) gc.restore() - dsu.append((self.images[0].get_zorder(), draw_composite, [])) + dsu.append((self.images[0].get_zorder(), self.images[0], draw_composite, [])) # render the axes for a in self.axes: - dsu.append( (a.get_zorder(), a.draw, [renderer])) + dsu.append( (a.get_zorder(), a, a.draw, [renderer])) # render the figure text for a in self.texts: - dsu.append( (a.get_zorder(), a.draw, [renderer])) + dsu.append( (a.get_zorder(), a, a.draw, [renderer])) for a in self.legends: - dsu.append( (a.get_zorder(), a.draw, [renderer])) + dsu.append( (a.get_zorder(), a, a.draw, [renderer])) + dsu = [row for row in dsu if not row[1].get_animated()] dsu.sort(key=itemgetter(0)) - for zorder, func, args in dsu: + for zorder, a, func, args in dsu: func(*args) renderer.close_group('figure')