Source code for glue_jupyter.bqplot.histogram.viewer

from glue.core.subset import roi_to_subset_state
from glue.core.roi import RangeROI
from glue.viewers.histogram.state import HistogramViewerState

from ..common.viewer import BqplotBaseView

from .layer_artist import BqplotHistogramLayerArtist
from glue_jupyter.common.state_widgets.layer_histogram import HistogramLayerStateWidget
from glue_jupyter.common.state_widgets.viewer_histogram import HistogramViewerStateWidget

__all__ = ['BqplotHistogramView']


[docs]class BqplotHistogramView(BqplotBaseView): allow_duplicate_data = False allow_duplicate_subset = False large_data_size = 1e5 is2d = False _state_cls = HistogramViewerState _options_cls = HistogramViewerStateWidget _data_artist_cls = BqplotHistogramLayerArtist _subset_artist_cls = BqplotHistogramLayerArtist _layer_style_widget_cls = HistogramLayerStateWidget tools = ['bqplot:panzoom', 'bqplot:xrange'] def _roi_to_subset_state(self, roi): # TODO: copy paste from glue/viewers/histogram/qt/data_viewer.py # TODO Does subset get applied to all data or just visible data? bins = self.state.bins x = roi.to_polygon()[0] lo, hi = min(x), max(x) if lo >= bins.min(): lo = bins[bins <= lo].max() if hi <= bins.max(): hi = bins[bins >= hi].min() roi_new = RangeROI(min=lo, max=hi, orientation='x') return roi_to_subset_state(roi_new, x_att=self.state.x_att)