예제 #1
0
    def __init__(self, view, viewer_state, layer_state=None, layer=None):

        super().__init__(viewer_state, layer_state=layer_state, layer=layer)

        # Watch for changes in the viewer state which would require the
        # layers to be redrawn
        self._viewer_state.add_global_callback(self._update_profile)
        self.state.add_global_callback(self._update_profile)

        self.view = view

        self.line_mark = bqplot.Lines(scales=self.view.scales,
                                      x=[0, 1],
                                      y=[0, 1])

        self.view.figure.marks = list(
            self.view.figure.marks) + [self.line_mark]

        dlink((self.state, 'color'), (self.line_mark, 'colors'),
              lambda x: [color2hex(x)])
        dlink((self.state, 'alpha'), (self.line_mark, 'opacities'),
              lambda x: [x])

        self.line_mark.colors = [color2hex(self.state.color)]
        self.line_mark.opacities = [self.state.alpha]
예제 #2
0
 def on_success(result):
     fit_results, x, y = result
     report = ""
     normalize = {}
     for layer_artist in fit_results:
         report += ("<b><font color='{0}'>{1}</font>"
                    "</b>".format(color2hex(layer_artist.state.color),
                                  layer_artist.layer.label))
         report += "<pre>" + fitter.summarize(fit_results[layer_artist], x, y) + "</pre>"
         if self.viewer.state.normalize:
             normalize[layer_artist] = layer_artist.state.normalize_values
     self._report_fit(report)
     self._plot_fit(fitter, fit_results, x, y, normalize)
예제 #3
0
 def on_success(result):
     fit_results, x, y = result
     report = ""
     normalize = {}
     for layer_artist in fit_results:
         report += ("<b><font color='{0}'>{1}</font>"
                    "</b>".format(color2hex(layer_artist.state.color),
                                  layer_artist.layer.label))
         report += "<pre>" + fitter.summarize(fit_results[layer_artist], x, y) + "</pre>"
         if self.viewer.state.normalize:
             normalize[layer_artist] = layer_artist.state.normalize_values
     self._report_fit(report)
     self._plot_fit(fitter, fit_results, x, y, normalize)
예제 #4
0
 def _update_color(self, ignore=None):
     cmap = self.state.cmap
     if self.state.cmap_mode == 'Linear':
         values = self.layer.data[self.state.cmap_att].astype(np.float32).ravel()
         normalized_values = ((values - self.state.cmap_vmin)
                              / (self.state.cmap_vmax - self.state.cmap_vmin))
         color_values = cmap(normalized_values).astype(np.float32)
         self.scatter.color = color_values
     else:
         self.scatter.color = color2hex(self.state.color)
     # for ipyvolume we set all colors the same, and resize unselected points to 0
     self.quiver.color = self.scatter.color
     self.scatter.color_selected = self.scatter.color
     self.quiver.color_selected = self.quiver.color
예제 #5
0
    def __init__(self, view, viewer_state, layer_state=None, layer=None):

        super(BqplotHistogramLayerArtist,
              self).__init__(viewer_state,
                             layer_state=layer_state,
                             layer=layer)

        self.view = view

        self.bars = bqplot.Bars(scales=self.view.scales, x=[0, 1], y=[0, 1])

        self.view.figure.marks = list(self.view.figure.marks) + [self.bars]

        dlink((self.state, 'color'), (self.bars, 'colors'),
              lambda x: [color2hex(x)])

        self._viewer_state.add_global_callback(self._update_histogram)
        self.state.add_global_callback(self._update_histogram)
        self.bins = None

        link((self.state, 'visible'), (self.bars, 'visible'))
예제 #6
0
    def __init__(self, view, viewer_state, layer_state=None, layer=None):

        super(BqplotScatterLayerArtist, self).__init__(viewer_state,
                                                       layer_state=layer_state,
                                                       layer=layer)

        self.view = view

        self.scale_size = bqplot.LinearScale()
        self.scale_color = bqplot.ColorScale()
        self.scale_size_quiver = bqplot.LinearScale(min=0, max=1)
        self.scale_rotation = bqplot.LinearScale(min=0, max=1)
        self.scales = dict(self.view.scales,
                           size=self.scale_size,
                           rotation=self.scale_rotation,
                           color=self.scale_color)
        self.scale_image = bqplot.ColorScale()
        self.scales_quiver = dict(self.view.scales,
                                  size=self.scale_size_quiver,
                                  rotation=self.scale_rotation)
        self.scales_image = dict(self.view.scales, image=self.scale_image)
        self.scatter = bqplot.ScatterGL(scales=self.scales, x=[0, 1], y=[0, 1])
        self.quiver = bqplot.ScatterGL(scales=self.scales_quiver,
                                       x=[0, 1],
                                       y=[0, 1],
                                       visible=False,
                                       marker='arrow')

        self.counts = None
        self.image = ImageGL(scales=self.scales_image)
        on_change([(self.state, 'density_map')])(self._on_change_density_map)
        on_change([(self.state, 'bins')])(self._update_scatter)
        self._viewer_state.add_global_callback(self._update_scatter)

        self.view.figure.marks = (list(self.view.figure.marks) +
                                  [self.image, self.scatter, self.quiver])
        dlink((self.state, 'color'), (self.scatter, 'colors'),
              lambda x: [color2hex(x)])
        dlink((self.state, 'color'), (self.quiver, 'colors'),
              lambda x: [color2hex(x)])
        self.scatter.observe(self._workaround_unselected_style, 'colors')
        self.quiver.observe(self._workaround_unselected_style, 'colors')

        on_change([(self.state, 'cmap_mode', 'cmap_att')
                   ])(self._on_change_cmap_mode_or_att)
        on_change([(self.state, 'cmap')])(self._on_change_cmap)
        dlink((self.state, 'cmap_vmin'), (self.scale_color, 'min'),
              float_or_none)
        dlink((self.state, 'cmap_vmax'), (self.scale_color, 'max'),
              float_or_none)

        on_change([(self.state, 'size', 'size_scaling', 'size_mode',
                    'size_vmin', 'size_vmax')])(self._update_size)

        viewer_state.add_callback('x_att', self._update_xy_att)
        viewer_state.add_callback('y_att', self._update_xy_att)
        self._update_size()
        # set initial values for the colormap
        self._on_change_cmap()

        self.state.add_callback('visible', self._update_visibility)
        self.state.add_callback('vector_visible', self._update_visibility)
        self.state.add_callback('density_map', self._update_visibility)

        dlink((self.state, 'visible'), (self.scatter, 'visible'))
        dlink((self.state, 'visible'), (self.image, 'visible'))

        dlink((self.state, 'alpha'), (self.scatter, 'default_opacities'),
              lambda x: [x])
        dlink((self.state, 'alpha'), (self.quiver, 'default_opacities'),
              lambda x: [x])
        dlink((self.state, 'alpha'), (self.image, 'opacity'))

        on_change([(self.state, 'vector_visible', 'vx_att', 'vy_att')
                   ])(self._update_quiver)
        dlink((self.state, 'vector_visible'), (self.quiver, 'visible'))