コード例 #1
0
ファイル: geo.py プロジェクト: shiwalimohan/geoviews
class _Element(Element2D):
    """
    Baseclass for Element2D types with associated cartopy
    coordinate reference system.
    """

    _abstract = True

    crs = param.ClassSelector(default=ccrs.PlateCarree(),
                              class_=ccrs.CRS,
                              doc="""
        Cartopy coordinate-reference-system specifying the
        coordinate system of the data. Inferred automatically
        when _Element wraps cartopy Feature object.""")

    kdims = param.List(default=[Dimension('Longitude'),
                                Dimension('Latitude')],
                       bounds=(2, 2),
                       constant=True)

    def __init__(self, data, kdims=None, vdims=None, **kwargs):
        crs = None
        if isinstance(data, HvDataset):
            crs_data = data.data
        else:
            crs_data = data
        if Cube and isinstance(crs_data, Cube):
            coord_sys = crs_data.coord_system()
            if hasattr(coord_sys, 'as_cartopy_projection'):
                crs = coord_sys.as_cartopy_projection()
        elif isinstance(crs_data, (cFeature, GoogleTiles)):
            crs = crs_data.crs

        supplied_crs = kwargs.get('crs', None)
        if supplied_crs and crs and crs != supplied_crs:
            raise ValueError('Supplied coordinate reference '
                             'system must match crs of the data.')
        elif crs:
            kwargs['crs'] = crs
        elif isinstance(data, _Element):
            kwargs['crs'] = data.crs
        super(_Element, self).__init__(data,
                                       kdims=kdims,
                                       vdims=vdims,
                                       **kwargs)

    def clone(self,
              data=None,
              shared_data=True,
              new_type=None,
              *args,
              **overrides):
        if 'crs' not in overrides and (not new_type
                                       or isinstance(new_type, _Element)):
            overrides['crs'] = self.crs
        return super(_Element, self).clone(data, shared_data, new_type, *args,
                                           **overrides)
コード例 #2
0
class Dataset(_Element, HvDataset):
    """
    Coordinate system aware version of a HoloViews dataset.
    """

    kdims = param.List(default=[Dimension('Longitude'),
                                Dimension('Latitude')],
                       constant=True)

    group = param.String(default='Dataset')
コード例 #3
0
ファイル: testhextilesplot.py プロジェクト: zbarry/holoviews
 def test_hex_tiles_count_aggregation(self):
     tiles = HexTiles([(0, 0), (0.5, 0.5), (-0.5, -0.5), (-0.4, -0.4)])
     binned = hex_binning(tiles, gridsize=3)
     expected = HexTiles([(0, 0, 1), (2, -1, 1), (-2, 1, 2)],
                         kdims=[
                             Dimension('x', range=(-0.5, 0.5)),
                             Dimension('y', range=(-0.5, 0.5))
                         ],
                         vdims='Count')
     self.assertEqual(binned, expected)
コード例 #4
0
ファイル: geo.py プロジェクト: RBozydar/geoviews
class VectorField(_Element, HvVectorField):
    """
    A VectorField contains is a collection of vectors where each
    vector has an associated position. The vectors should be specified
    by defining an angle in radians and a magnitude.
    """

    group = param.String(default='VectorField', constant=True)

    vdims = param.List(default=[Dimension('Angle', cyclic=True, range=(0,2*np.pi)),
                                Dimension('Magnitude')], bounds=(1, None))
コード例 #5
0
 def test_bokeh_server_dynamic_range_not_editable(self):
     dim = Dimension('x', range=(3.1, 11.2))
     widget, label, mapping = BokehServerWidgets.create_widget(dim, editable=False)
     self.assertIsInstance(widget, Slider)
     self.assertEqual(widget.value, 3.1)
     self.assertEqual(widget.start, 3.1)
     self.assertEqual(widget.end, 11.2)
     self.assertEqual(widget.step, 0.01)
     self.assertIsInstance(label, Div)
     self.assertEqual(label.text, '<b>%s</b>' % dim.pprint_value_string(3.1))
     self.assertIs(mapping, None)
コード例 #6
0
ファイル: testwidgets.py プロジェクト: JulianDekker/DOVAL
 def test_dynamic_values_partial_overlap(self):
     kdims = [
         Dimension('File', range=(0.01, 1)),
         Dimension('SliceDimension', values=['x', 'y', 'z']),
         Dimension('Coordinates', range=(0.01, 1))
     ]
     dmap1 = DynamicMap(lambda x, y, z: Image(np.random.rand(10, 10)),
                        kdims=kdims)
     dmap2 = DynamicMap(lambda x: Curve(np.random.rand(10, 2)) * VLine(x),
                        kdims=kdims[:1])
     mpl_renderer.get_widget(dmap1 + dmap2, 'selection')
コード例 #7
0
class Image(_Element, Dataset):
    """
    Image represents a 2D array of some quantity with
    some associated coordinates.
    """

    kdims = param.List(default=[Dimension('x'), Dimension('y')])

    vdims = param.List(default=[Dimension('z')], bounds=(1, 1))

    group = param.String(default='Image')
コード例 #8
0
ファイル: testwidgets.py プロジェクト: basnijholt/holoviews
 def test_bokeh_server_dynamic_range_not_editable(self):
     dim = Dimension('x', range=(3.1, 11.2))
     widget, label, mapping = BokehServerWidgets.create_widget(dim, editable=False)
     self.assertIsInstance(widget, Slider)
     self.assertEqual(widget.value, 3.1)
     self.assertEqual(widget.start, 3.1)
     self.assertEqual(widget.end, 11.2)
     self.assertEqual(widget.step, 0.01)
     self.assertIsInstance(label, Div)
     self.assertEqual(label.text, '<b>%s</b>' % dim.pprint_value_string(3.1))
     self.assertIs(mapping, None)
コード例 #9
0
ファイル: geo.py プロジェクト: RBozydar/geoviews
class Nodes(_Element, HvNodes):
    """
    Nodes is a simple Element representing Graph nodes as a set of
    Points.  Unlike regular Points, Nodes must define a third key
    dimension corresponding to the node index.
    """

    group = param.String(default='Nodes', constant=True)

    kdims = param.List(default=[Dimension('Longitude'), Dimension('Latitude'),
                                Dimension('index')], bounds=(3, 3))
コード例 #10
0
class Contours(_Element, Dataset):
    """
    Contours represents a 2D array of some quantity with
    some associated coordinates, which may be discretized
    into one or more contours.
    """

    kdims = param.List(default=[Dimension('x'), Dimension('y')])

    vdims = param.List(default=[Dimension('z')], bounds=(1, 1))

    group = param.String(default='Contours')
コード例 #11
0
ファイル: testhextilesplot.py プロジェクト: zbarry/holoviews
 def test_hex_tiles_sum_value_aggregation(self):
     tiles = HexTiles([(0, 0, 1), (0.5, 0.5, 2), (-0.5, -0.5, 3),
                       (-0.4, -0.4, 4)],
                      vdims='z')
     binned = hex_binning(tiles, gridsize=3, aggregator=np.sum)
     expected = HexTiles([(0, 0, 1), (2, -1, 2), (-2, 1, 7)],
                         kdims=[
                             Dimension('x', range=(-0.5, 0.5)),
                             Dimension('y', range=(-0.5, 0.5))
                         ],
                         vdims='z')
     self.assertEqual(binned, expected)
コード例 #12
0
 def test_bokeh_server_dynamic_values_float_not_editable(self):
     values = list(np.linspace(3.1, 11.2, 7))
     dim = Dimension('x', values=values)
     widget, label, mapping = BokehServerWidgets.create_widget(dim, editable=False)
     self.assertIsInstance(widget, Slider)
     self.assertEqual(widget.value, 0)
     self.assertEqual(widget.start, 0)
     self.assertEqual(widget.end, 6)
     self.assertEqual(widget.step, 1)
     self.assertIsInstance(label, Div)
     self.assertEqual(label.text, '<b>%s</b>' % dim.pprint_value_string(3.1))
     self.assertEqual(mapping, [(i, (v, dim.pprint_value(v))) for i, v in enumerate(values)])
コード例 #13
0
ファイル: testwidgets.py プロジェクト: basnijholt/holoviews
 def test_bokeh_server_dynamic_values_float_not_editable(self):
     values = list(np.linspace(3.1, 11.2, 7))
     dim = Dimension('x', values=values)
     widget, label, mapping = BokehServerWidgets.create_widget(dim, editable=False)
     self.assertIsInstance(widget, Slider)
     self.assertEqual(widget.value, 0)
     self.assertEqual(widget.start, 0)
     self.assertEqual(widget.end, 6)
     self.assertEqual(widget.step, 1)
     self.assertIsInstance(label, Div)
     self.assertEqual(label.text, '<b>%s</b>' % dim.pprint_value_string(3.1))
     self.assertEqual(mapping, [(i, (v, dim.pprint_value(v))) for i, v in enumerate(values)])
コード例 #14
0
 def test_bokeh_server_dynamic_values_float_editable(self):
     values = list(np.linspace(3.1, 11.2, 7))
     dim = Dimension('x', values=values)
     widget, label, mapping = BokehServerWidgets.create_widget(dim, editable=True)
     self.assertIsInstance(widget, Slider)
     self.assertEqual(widget.value, 0)
     self.assertEqual(widget.start, 0)
     self.assertEqual(widget.end, 6)
     self.assertEqual(widget.step, 1)
     self.assertIsInstance(label, AutocompleteInput)
     self.assertEqual(label.title, dim.pprint_label)
     self.assertEqual(label.value, '3.1')
     self.assertEqual(mapping, [(v, dim.pprint_value(v)) for v in values])
コード例 #15
0
ファイル: testbokehwidgets.py プロジェクト: mforbes/holoviews
 def test_bokeh_server_dynamic_values_float_editable(self):
     values = list(np.linspace(3.1, 11.2, 7))
     dim = Dimension('x', values=values)
     widget, label, mapping = BokehServerWidgets.create_widget(dim, editable=True)
     self.assertIsInstance(widget, Slider)
     self.assertEqual(widget.value, 0)
     self.assertEqual(widget.start, 0)
     self.assertEqual(widget.end, 6)
     self.assertEqual(widget.step, 1)
     self.assertIsInstance(label, AutocompleteInput)
     self.assertEqual(label.title, dim.pprint_label)
     self.assertEqual(label.value, '3.1')
     self.assertEqual(mapping, [(v, dim.pprint_value(v)) for v in values])
コード例 #16
0
 def test_bokeh_server_dynamic_values_int(self):
     values = list(range(3, 11))
     dim = Dimension('x', values=values)
     widget, label, mapping = BokehServerWidgets.create_widget(dim, editable=True)
     self.assertIsInstance(widget, Slider)
     self.assertEqual(widget.value, 0)
     self.assertEqual(widget.start, 0)
     self.assertEqual(widget.end, 7)
     self.assertEqual(widget.step, 1)
     self.assertIsInstance(label, AutocompleteInput)
     self.assertEqual(label.title, dim.pprint_label)
     self.assertEqual(label.value, '3')
     self.assertEqual(mapping, [(i, (v, dim.pprint_value(v))) for i, v in enumerate(values)])
コード例 #17
0
 def test_bokeh_server_static_numeric_values(self):
     dim = Dimension('x')
     ndmap = NdMapping({i: None for i in range(3, 12)}, kdims=['x'])
     widget, label, mapping = BokehServerWidgets.create_widget(dim, ndmap, editable=True)
     self.assertIsInstance(widget, Slider)
     self.assertEqual(widget.value, 0)
     self.assertEqual(widget.start, 0)
     self.assertEqual(widget.end, 8)
     self.assertEqual(widget.step, 1)
     self.assertIsInstance(label, AutocompleteInput)
     self.assertEqual(label.title, dim.pprint_label)
     self.assertEqual(label.value, '3')
     self.assertEqual(mapping, [(i, (k, dim.pprint_value(k))) for i, k in enumerate(ndmap.keys())])
コード例 #18
0
ファイル: testwidgets.py プロジェクト: basnijholt/holoviews
 def test_bokeh_server_static_numeric_values(self):
     dim = Dimension('x')
     ndmap = NdMapping({i: None for i in range(3, 12)}, kdims=['x'])
     widget, label, mapping = BokehServerWidgets.create_widget(dim, ndmap, editable=True)
     self.assertIsInstance(widget, Slider)
     self.assertEqual(widget.value, 0)
     self.assertEqual(widget.start, 0)
     self.assertEqual(widget.end, 8)
     self.assertEqual(widget.step, 1)
     self.assertIsInstance(label, AutocompleteInput)
     self.assertEqual(label.title, dim.pprint_label)
     self.assertEqual(label.value, '3')
     self.assertEqual(mapping, [(i, (k, dim.pprint_value(k))) for i, k in enumerate(ndmap.keys())])
コード例 #19
0
ファイル: testwidgets.py プロジェクト: basnijholt/holoviews
 def test_bokeh_server_dynamic_values_int(self):
     values = list(range(3, 11))
     dim = Dimension('x', values=values)
     widget, label, mapping = BokehServerWidgets.create_widget(dim, editable=True)
     self.assertIsInstance(widget, Slider)
     self.assertEqual(widget.value, 0)
     self.assertEqual(widget.start, 0)
     self.assertEqual(widget.end, 7)
     self.assertEqual(widget.step, 1)
     self.assertIsInstance(label, AutocompleteInput)
     self.assertEqual(label.title, dim.pprint_label)
     self.assertEqual(label.value, '3')
     self.assertEqual(mapping, [(i, (v, dim.pprint_value(v))) for i, v in enumerate(values)])
コード例 #20
0
 def setUp(self):
     super(DimensionsComparisonTestCase, self).setUp()
     self.dimension1 = Dimension('dim1', range=(0, 1))
     self.dimension2 = Dimension('dim2', range=(0, 1))
     self.dimension3 = Dimension('dim1', range=(0, 2))
     self.dimension4 = Dimension('dim1')
     self.dimension5 = Dimension('dim1', cyclic=True)
     self.dimension6 = Dimension('dim1', cyclic=True, range=(0, 1))
     self.dimension7 = Dimension('dim1',
                                 cyclic=True,
                                 range=(0, 1),
                                 unit='ms')
     self.dimension8 = Dimension('dim1', values=['a', 'b'])
     self.dimension9 = Dimension('dim1', type=int)
     self.dimension10 = Dimension('dim1', type=float)
コード例 #21
0
ファイル: testwidgets.py プロジェクト: zzwei1/holoviews
    def test_holomap_slider_and_dropdown(self):
        hmap = HoloMap({(i, chr(65 + i)): Curve([1, 2, 3])
                        for i in range(10)}, ['X', 'Y'])
        widgets = bokeh_renderer.get_widget(hmap, 'widgets')
        widgets, dimensions, init_dim_vals = widgets.get_widgets()
        self.assertEqual(len(widgets), 2)

        slider = widgets[0]
        self.assertEqual(slider['type'], 'slider')
        self.assertEqual(slider['dim'], 'X')
        self.assertEqual(slider['dim_idx'], 0)
        self.assertEqual(slider['vals'],
                         repr([repr(float(v)) for v in range(10)]))
        self.assertEqual(slider['labels'], repr([str(v) for v in range(10)]))
        self.assertEqual(slider['step'], 1)
        self.assertEqual(slider['default'], 0)
        self.assertEqual(slider['next_dim'], Dimension('Y'))
        self.assertEqual(eval(slider['next_vals']),
                         {str(float(i)): [chr(65 + i)]
                          for i in range(10)})

        dropdown = widgets[1]
        self.assertEqual(dropdown['type'], 'dropdown')
        self.assertEqual(dropdown['dim'], 'Y')
        self.assertEqual(dropdown['dim_idx'], 1)
        self.assertEqual(dropdown['vals'],
                         repr([chr(65 + v) for v in range(10)]))
        self.assertEqual(dropdown['labels'],
                         repr([chr(65 + v) for v in range(10)]))
        self.assertEqual(dropdown['step'], 1)
        self.assertEqual(dropdown['default'], 0)
        self.assertIs(dropdown['next_dim'], None)

        self.assertEqual(dimensions, ['X', 'Y'])
        self.assertEqual(init_dim_vals, repr(['0.0', 'A']))
コード例 #22
0
ファイル: testwidgets.py プロジェクト: zzwei1/holoviews
 def test_dynamicmap_range_default(self):
     dimension = Dimension('X', range=(0., 5.), default=0.05)
     hmap = DynamicMap(lambda x: Curve([1, 2, 3]), kdims=[dimension])
     widgets = bokeh_renderer.get_widget(hmap, 'widgets')
     widgets, dimensions, init_dim_vals = widgets.get_widgets()
     self.assertEqual(widgets[0]['default'], 0.05)
     self.assertEqual(init_dim_vals, '[0.050000000]')
コード例 #23
0
ファイル: geo.py プロジェクト: zassa/geoviews
class Image(_Element, HvImage):
    """
    Image represents a 2D array of some quantity with
    some associated coordinates.
    """

    vdims = param.List(default=[Dimension('z')], bounds=(1, None))

    group = param.String(default='Image')

    @classmethod
    def load_tiff(cls,
                  filename,
                  crs=None,
                  apply_transform=False,
                  nan_nodata=False,
                  **kwargs):
        return load_tiff(filename, crs, apply_transform, **kwargs)

    @classmethod
    def from_xarray(cls,
                    da,
                    crs=None,
                    apply_transform=False,
                    nan_nodata=False,
                    **kwargs):
        return from_xarray(da, crs, apply_transform, **kwargs)
コード例 #24
0
ファイル: testhextilesplot.py プロジェクト: zbarry/holoviews
 def test_hex_tiles_hover_weighted(self):
     tiles = HexTiles([(0, 0, 0.1), (0.5, 0.5, 0.2), (-0.5, -0.5, 0.3)],
                      vdims='z').options(aggregator=np.mean)
     plot = list(bokeh_renderer.get_plot(tiles).subplots.values())[0]
     dims, opts = plot._hover_opts(tiles)
     self.assertEqual(dims, [Dimension('z')])
     self.assertEqual(opts, {})
コード例 #25
0
 def test_dynamicmap_unsorted_numeric_values_slider_plot_update(self):
     dims = [Dimension('N', values=[10, 5, 0])]
     dmap = DynamicMap(lambda N: Curve([1, N, 5]), kdims=dims)
     widgets = bokeh_renderer.get_widget(dmap, 'widgets')
     widgets.get_widgets()
     widgets.update((2,))
     self.assertEqual(widgets.plot.current_key, (10,))
コード例 #26
0
ファイル: testwidgets.py プロジェクト: zzwei1/holoviews
 def test_holomap_dropdown_default(self):
     dim = Dimension('X', default='C')
     hmap = HoloMap({chr(65 + i): Curve([1, 2, 3]) for i in range(10)}, dim)
     widgets = bokeh_renderer.get_widget(hmap, 'widgets')
     widgets, dimensions, init_dim_vals = widgets.get_widgets()
     self.assertEqual(widgets[0]['default'], '2')
     self.assertEqual(init_dim_vals, "['C']")
コード例 #27
0
ファイル: testhextilesplot.py プロジェクト: zbarry/holoviews
 def test_hex_tiles_hover_count(self):
     tiles = HexTiles([(0, 0), (0.5, 0.5), (-0.5, -0.5),
                       (-0.4, -0.4)]).options(tools=['hover'])
     plot = list(bokeh_renderer.get_plot(tiles).subplots.values())[0]
     dims, opts = plot._hover_opts(tiles)
     self.assertEqual(dims, [Dimension('Count')])
     self.assertEqual(opts, {})
コード例 #28
0
ファイル: testwidgets.py プロジェクト: zzwei1/holoviews
 def test_holomap_slider_default(self):
     dim = Dimension('X', default=3)
     hmap = HoloMap({i: Curve([1, 2, 3]) for i in range(1, 9)}, dim)
     widgets = bokeh_renderer.get_widget(hmap, 'widgets')
     widgets, dimensions, init_dim_vals = widgets.get_widgets()
     self.assertEqual(widgets[0]['default'], '2')
     self.assertEqual(init_dim_vals, "['3.0']")
コード例 #29
0
class QuadMesh(_Element, HvQuadMesh):
    """
    QuadMesh is a Raster type to hold x- and y- bin values
    with associated values. The x- and y-values of the QuadMesh
    may be supplied either as the edges of each bin allowing
    uneven sampling or as the bin centers, which will be converted
    to evenly sampled edges.

    As a secondary but less supported mode QuadMesh can contain
    a mesh of quadrilateral coordinates that is not laid out in
    a grid. The data should then be supplied as three separate
    2D arrays for the x-/y-coordinates and grid values.
    """

    datatype = param.List(default=['grid', 'xarray'])

    vdims = param.List(default=[Dimension('z')], bounds=(1, 1))

    group = param.String(default='QuadMesh')

    _binned = True

    def trimesh(self):
        trimesh = super(QuadMesh, self).trimesh()
        node_params = get_param_values(trimesh.nodes)
        nodes = TriMesh.node_type(trimesh.nodes.data, **node_params)
        return TriMesh((trimesh.data, nodes),
                       crs=self.crs,
                       **get_param_values(trimesh))
コード例 #30
0
    def test_element_formatter_xaxis(self):
        def formatter(x):
            return '%s' % x

        curve = Curve(range(10),
                      kdims=[Dimension('x', value_format=formatter)])
        plot = bokeh_renderer.get_plot(curve).state
        self.assertIsInstance(plot.xaxis[0].formatter, FuncTickFormatter)
コード例 #31
0
    def test_dimension_call(self):
        dim1 = Dimension('Test dimension')
        dim2 = dim1(cyclic=True)
        self.assertEqual(dim2.cyclic,True)

        dim3 = dim1('New test dimension', unit='scovilles')
        self.assertEqual(dim3.name, 'New test dimension')
        self.assertEqual(dim3.unit, 'scovilles')
コード例 #32
0
ファイル: testwidgets.py プロジェクト: zzwei1/holoviews
 def test_dynamicmap_values_default(self):
     values = [chr(65 + i) for i in range(10)]
     dimension = Dimension('X', values=values, default='C')
     hmap = DynamicMap(lambda x: Curve([1, 2, 3]), kdims=[dimension])
     widgets = bokeh_renderer.get_widget(hmap, 'widgets')
     widgets, dimensions, init_dim_vals = widgets.get_widgets()
     self.assertEqual(widgets[0]['default'], '2')
     self.assertEqual(init_dim_vals, repr(['2']))
コード例 #33
0
ファイル: geo.py プロジェクト: zassa/geoviews
 def __init__(self, data, kdims=None, vdims=None, **params):
     if params.get('level') is not None:
         if vdims is None:
             vdims = [Dimension('Level')]
         self.warning('Supplying a level to a Shape is deprecated '
                      'provide the value as part of a dictionary of '
                      'the form {\'geometry\': <shapely.Geometry>, '
                      '\'level\': %s} instead' % params['level'])
     super(Shape, self).__init__(data, kdims=kdims, vdims=vdims, **params)
コード例 #34
0
    def setUp(self):
        super(RasterMapTestCase, self).setUp()
        # Example 1D map
        self.map1_1D = HoloMap(key_dimensions=['int'])
        self.map1_1D[0] = self.mat1
        self.map1_1D[1] = self.mat2
        # Changed keys...
        self.map2_1D = HoloMap(key_dimensions=['int'])
        self.map2_1D[1] = self.mat1
        self.map2_1D[2] = self.mat2
        # Changed number of keys...
        self.map3_1D = HoloMap(key_dimensions=['int'])
        self.map3_1D[1] = self.mat1
        self.map3_1D[2] = self.mat2
        self.map3_1D[3] = self.mat3
        # Changed values...
        self.map4_1D = HoloMap(key_dimensions=['int'])
        self.map4_1D[0] = self.mat1
        self.map4_1D[1] = self.mat3
        # Changed bounds...
        self.map5_1D = HoloMap(key_dimensions=['int'])
        self.map5_1D[0] = self.mat4
        self.map5_1D[1] = self.mat5
        # Example dimension label
        self.map6_1D = HoloMap(key_dimensions=['int_v2'])
        self.map6_1D[0] = self.mat1
        self.map6_1D[1] = self.mat2
        # A HoloMap of Overlays
        self.map7_1D = HoloMap(key_dimensions=['int'])
        self.map7_1D[0] =  self.overlay1_depth2
        self.map7_1D[1] =  self.overlay2_depth2
        # A different HoloMap of Overlays
        self.map8_1D = HoloMap(key_dimensions=['int'])
        self.map8_1D[0] =  self.overlay2_depth2
        self.map8_1D[1] =  self.overlay1_depth2

        # Example 2D map
        self.map1_2D = HoloMap(key_dimensions=['int', Dimension('float')])
        self.map1_2D[0, 0.5] = self.mat1
        self.map1_2D[1, 1.0] = self.mat2
        # Changed 2D keys...
        self.map2_2D = HoloMap(key_dimensions=['int', Dimension('float')])
        self.map2_2D[0, 1.0] = self.mat1
        self.map2_2D[1, 1.5] = self.mat2
コード例 #35
0
    def widgets_from_dimensions(cls, object, widget_types={}, widgets_type='individual'):
        from holoviews.core import Dimension
        from holoviews.core.util import isnumeric, unicode
        from holoviews.core.traversal import unique_dimkeys
        from .widgets import Widget, DiscreteSlider, Select, FloatSlider

        dims, keys = unique_dimkeys(object)
        if dims == [Dimension('Frame')] and keys == [(0,)]:
            return [], {}

        nframes = 1
        values = dict(zip(dims, zip(*keys)))
        dim_values = OrderedDict()
        widgets = []
        for dim in dims:
            widget_type, widget = None, None
            vals = dim.values or values.get(dim, None)
            dim_values[dim.name] = vals
            if widgets_type == 'scrubber':
                if not vals:
                    raise ValueError('Scrubber widget may only be used if all dimensions define values.')
                nframes *= len(vals)
            elif dim.name in widget_types:
                widget = widget_types[dim.name]
                if isinstance(widget, Widget):
                    widgets.append(widget)
                    continue
                elif isinstance(widget, type) and issubclass(widget, Widget):
                    widget_type = widget
                else:
                    raise ValueError('Explicit widget definitions expected '
                                     'to be a widget instance or type, %s '
                                     'dimension widget declared as %s.' % 
                                     (dim, widget))
            if vals:
                if all(isnumeric(v) for v in vals):
                    vals = sorted(vals)
                    labels = [unicode(dim.pprint_value(v)) for v in vals]
                    options = OrderedDict(zip(labels, vals))
                    widget_type = widget_type or DiscreteSlider
                else:
                    options = list(vals)
                    widget_type = widget_type or Select
                default = vals[0] if dim.default is None else dim.default
                widget = widget_type(name=dim.label, options=options, value=default)
            elif dim.range != (None, None):
                default = dim.range[0] if dim.default is None else dim.default
                step = 0.1 if dim.step is None else dim.step
                widget_type = widget_type or FloatSlider
                widget = widget_type(step=step, name=dim.label, start=dim.range[0],
                                     end=dim.range[1], value=default)
            if widget is not None:
                widgets.append(widget)
        if widgets_type == 'scrubber':
            widgets = [Player(length=nframes)]
        return widgets, dim_values
コード例 #36
0
 def test_simple_values_clone(self):
     dim = Dimension('test', values=[1,2,3])
     self.assertEqual(dim.values, [1,2,3])
     clone = dim.clone(values=[4,5,6])
     self.assertEqual(clone.name, 'test')
     self.assertEqual(clone.values, [4,5,6])
コード例 #37
0
 def test_tuple_clone(self):
     dim = Dimension('test')
     self.assertEqual(dim.name, 'test')
     clone = dim.clone(('test', 'A test'))
     self.assertEqual(clone.name, 'test')
     self.assertEqual(clone.label, 'A test')
コード例 #38
0
 def test_simple_label_clone(self):
     dim = Dimension('test')
     self.assertEqual(dim.name, 'test')
     clone = dim.clone(label='label')
     self.assertEqual(clone.name, 'test')
     self.assertEqual(clone.label, 'label')
コード例 #39
0
ファイル: testndmapping.py プロジェクト: cmiller8/holoviews
 def test_dimension_pprint(self):
     dim = Dimension('Test dimension', cyclic=True, type=float, unit='Twilight zones')
     self.assertEqual(dim.pprint_value_string(3.2345), 'Test dimension: 3.23 Twilight zones')
     self.assertEqual(dim.pprint_value_string(4.2344),  'Test dimension: 4.23 Twilight zones')
コード例 #40
0
 def test_simple_clone(self):
     dim = Dimension('test')
     self.assertEqual(dim.name, 'test')
     self.assertEqual(dim.clone('bar').name, 'bar')