Source code for glue.viewers.matplotlib.layer_artist

from __future__ import absolute_import, division, print_function

from glue.viewers.matplotlib.state import DeferredDrawCallbackProperty
from glue.core.message import ComputationStartedMessage, ComputationEndedMessage
from glue.viewers.common.layer_artist import LayerArtist

__all__ = ['MatplotlibLayerArtist']


[docs]class MatplotlibLayerArtist(LayerArtist): zorder = DeferredDrawCallbackProperty() visible = DeferredDrawCallbackProperty() def __init__(self, axes, viewer_state, layer_state=None, layer=None): super(MatplotlibLayerArtist, self).__init__(viewer_state, layer_state=layer_state, layer=layer) self.axes = axes self.mpl_artists = []
[docs] def notify_start_computation(self): """ Broadcast a message to indicate that this layer artist has started a computation (typically used in conjunction with asynchronous operations). """ if self.state.layer is not None and self.state.layer.hub is not None: self.state.layer.hub.broadcast(ComputationStartedMessage(self))
[docs] def notify_end_computation(self): """ Broadcast a message to indicate that this layer artist has ended a computation (typically used in conjunction with asynchronous operations). """ if self.state.layer is not None and self.state.layer.hub is not None: self.state.layer.hub.broadcast(ComputationEndedMessage(self))
[docs] def clear(self): for artist in self.mpl_artists: try: artist.set_visible(False) except AttributeError: # can happen for e.g. errorbars pass
[docs] def remove(self): for artist in self.mpl_artists: try: artist.remove() except ValueError: # already removed pass except TypeError: # can happen for e.g. errorbars pass except AttributeError: # can happen for Matplotlib 1.4 pass self.mpl_artists[:] = [] self._notify_start = None
[docs] def get_layer_color(self): return self.state.color
[docs] def redraw(self): self.axes.figure.canvas.draw_idle()