|
9 | 9 | line segments).
|
10 | 10 | """
|
11 | 11 |
|
| 12 | +import inspect |
12 | 13 | import math
|
13 | 14 | from numbers import Number
|
14 | 15 | import numpy as np
|
@@ -2042,10 +2043,26 @@ def draw(self, renderer):
|
2042 | 2043 | renderer.draw_gouraud_triangles(
|
2043 | 2044 | gc, triangles, colors, transform.frozen())
|
2044 | 2045 | else:
|
2045 |
| - renderer.draw_quad_mesh( |
2046 |
| - gc, transform.frozen(), self._meshWidth, self._meshHeight, |
2047 |
| - coordinates, offsets, transOffset, self.get_facecolor(), |
2048 |
| - self._antialiased, self.get_edgecolors(), urls=self.get_urls()) |
| 2046 | + try: |
| 2047 | + sig = inspect.signature(renderer.draw_quad_mesh) |
| 2048 | + except ValueError: |
| 2049 | + # Compiled backends like Agg don't have a signature, but also |
| 2050 | + # don't support urls anyway. |
| 2051 | + use_urls = False |
| 2052 | + else: |
| 2053 | + use_urls = 'urls' in sig.parameters |
| 2054 | + if use_urls: |
| 2055 | + renderer.draw_quad_mesh( |
| 2056 | + gc, transform.frozen(), self._meshWidth, self._meshHeight, |
| 2057 | + coordinates, offsets, transOffset, self.get_facecolor(), |
| 2058 | + self._antialiased, self.get_edgecolors(), |
| 2059 | + urls=self.get_urls()) |
| 2060 | + else: |
| 2061 | + # This backend does not support storing urls in the QuadMesh. |
| 2062 | + renderer.draw_quad_mesh( |
| 2063 | + gc, transform.frozen(), self._meshWidth, self._meshHeight, |
| 2064 | + coordinates, offsets, transOffset, self.get_facecolor(), |
| 2065 | + self._antialiased, self.get_edgecolors()) |
2049 | 2066 | gc.restore()
|
2050 | 2067 | renderer.close_group(self.__class__.__name__)
|
2051 | 2068 | self.stale = False
|
|
0 commit comments