class PathClippedImagePatch(PathPatch): """ The given image is used to draw the face of the patch. Internally, it uses BboxImage whose clippath set to the path of the patch. FIXME : The result is currently dpi dependent. """ def __init__(self, path, bbox_image, **kwargs): super().__init__(path, **kwargs) self.bbox_image = BboxImage(self.get_window_extent, norm=None, origin=None) self.bbox_image.set_data(bbox_image) def set_facecolor(self, color): """Simply ignore facecolor.""" super().set_facecolor("none") def draw(self, renderer=None): # the clip path must be updated every draw. any solution? -JJ self.bbox_image.set_clip_path(self._path, self.get_transform()) self.bbox_image.draw(renderer) super().draw(renderer)