Beispiel #1
0
 def test_curve_style_mapping_constant_value_dimensions(self):
     vdims = ['y', 'num', 'cat']
     ndoverlay = NdOverlay({
         0: Curve([(0, 1, 0, 'A'), (1, 0, 0, 'A')], vdims=vdims),
         1: Curve([(0, 1, 0, 'B'), (1, 1, 0, 'B')], vdims=vdims),
         2: Curve([(0, 1, 1, 'A'), (1, 2, 1, 'A')], vdims=vdims),
         3: Curve([(0, 1, 1, 'B'), (1, 3, 1, 'B')], vdims=vdims)}
     ).opts({
         'Curve': dict(
             color=dim('num').categorize({0: 'red', 1: 'blue'}),
             linestyle=dim('cat').categorize({'A': '-.', 'B': '-'})
         )
     })
     plot = mpl_renderer.get_plot(ndoverlay)
     for k, sp in plot.subplots.items():
         artist = sp.handles['artist']
         color = artist.get_color()
         if ndoverlay[k].iloc[0, 2] == 0:
             self.assertEqual(color, 'red')
         else:
             self.assertEqual(color, 'blue')
         linestyle = artist.get_linestyle()
         if ndoverlay[k].iloc[0, 3] == 'A':
             self.assertEqual(linestyle, '-.')
         else:
             self.assertEqual(linestyle, '-')
Beispiel #2
0
 def test_curve_style_mapping_constant_value_dimensions(self):
     vdims = ['y', 'num', 'cat']
     ndoverlay = NdOverlay({
         0: Curve([(0, 1, 0, 'A'), (1, 0, 0, 'A')], vdims=vdims),
         1: Curve([(0, 1, 0, 'B'), (1, 1, 0, 'B')], vdims=vdims),
         2: Curve([(0, 1, 1, 'A'), (1, 2, 1, 'A')], vdims=vdims),
         3: Curve([(0, 1, 1, 'B'), (1, 3, 1, 'B')], vdims=vdims)}
     ).opts({
         'Curve': dict(
             color=dim('num').categorize({0: 'red', 1: 'blue'}),
             line_dash=dim('cat').categorize({'A': 'solid', 'B': 'dashed'})
         )
     })
     plot = bokeh_renderer.get_plot(ndoverlay)
     for k, sp in plot.subplots.items():
         glyph = sp.handles['glyph']
         color = glyph.line_color
         if ndoverlay[k].iloc[0, 2] == 0:
             self.assertEqual(color, 'red')
         else:
             self.assertEqual(color, 'blue')
         linestyle = glyph.line_dash
         if ndoverlay[k].iloc[0, 3] == 'A':
             self.assertEqual(linestyle, [])
         else:
             self.assertEqual(linestyle, [6])
Beispiel #3
0
 def test_chord_edge_color_style_mapping(self):
     g = self.chord.opts(style=dict(edge_color=dim('start').astype(str), edge_cmap=['#FFFFFF', '#000000']))
     plot = bokeh_renderer.get_plot(g)
     cmapper = plot.handles['edge_color_color_mapper']
     edge_source = plot.handles['multi_line_1_source']
     glyph = plot.handles['multi_line_1_glyph']
     self.assertIsInstance(cmapper, CategoricalColorMapper)
     self.assertEqual(cmapper.palette, ['#FFFFFF', '#000000', '#FFFFFF'])
     self.assertEqual(cmapper.factors, ['0', '1', '2'])
     self.assertEqual(edge_source.data['edge_color'], np.array(['0', '0', '1']))
     self.assertEqual(glyph.line_color, {'field': 'edge_color', 'transform': cmapper})
Beispiel #4
0
 def test_chord_edge_color_style_mapping_update(self):
     hmap = HoloMap({0: self.make_chord(0), 1: self.make_chord(1)}).options(
         edge_color=dim('weight').categorize({1: 'red', 2: 'green', 3: 'blue', 4: 'black'})
     )
     plot = mpl_renderer.get_plot(hmap)
     edges = plot.handles['edges']
     self.assertEqual(edges.get_edgecolors(), np.array([
         [1, 0, 0, 1], [0, 0.501961, 0, 1], [0, 0, 1, 1]
     ]))
     plot.update((1,))
     self.assertEqual(edges.get_edgecolors(), np.array([
         [0, 0.501961, 0, 1], [0, 0, 1, 1], [0, 0, 0, 1]
     ]))
Beispiel #5
0
 def test_curve_style_mapping_ndoverlay_dimensions(self):
     ndoverlay = NdOverlay({
         (0, 'A'): Curve([1, 2, 0]), (0, 'B'): Curve([1, 2, 1]),
         (1, 'A'): Curve([1, 2, 2]), (1, 'B'): Curve([1, 2, 3])},
                           ['num', 'cat']
     ).opts({
         'Curve': dict(
             color=dim('num').categorize({0: 'red', 1: 'blue'}),
             linestyle=dim('cat').categorize({'A': '-.', 'B': '-'})
         )
     })
     plot = mpl_renderer.get_plot(ndoverlay)
     for (num, cat), sp in plot.subplots.items():
         artist = sp.handles['artist']
         color = artist.get_color()
         if num == 0:
             self.assertEqual(color, 'red')
         else:
             self.assertEqual(color, 'blue')
         linestyle = artist.get_linestyle()
         if cat == 'A':
             self.assertEqual(linestyle, '-.')
         else:
             self.assertEqual(linestyle, '-')
Beispiel #6
0
 def test_curve_style_mapping_ndoverlay_dimensions(self):
     ndoverlay = NdOverlay({
         (0, 'A'): Curve([1, 2, 0]), (0, 'B'): Curve([1, 2, 1]),
         (1, 'A'): Curve([1, 2, 2]), (1, 'B'): Curve([1, 2, 3])},
                           ['num', 'cat']
     ).opts({
         'Curve': dict(
             color=dim('num').categorize({0: 'red', 1: 'blue'}),
             line_dash=dim('cat').categorize({'A': 'solid', 'B': 'dashed'})
         )
     })
     plot = bokeh_renderer.get_plot(ndoverlay)
     for (num, cat), sp in plot.subplots.items():
         glyph = sp.handles['glyph']
         color = glyph.line_color
         if num == 0:
             self.assertEqual(color, 'red')
         else:
             self.assertEqual(color, 'blue')
         linestyle = glyph.line_dash
         if cat == 'A':
             self.assertEqual(linestyle, [])
         else:
             self.assertEqual(linestyle, [6])
Beispiel #7
0
 def test_chord_node_color_style_mapping_update(self):
     hmap = HoloMap({0: self.make_chord(0), 1: self.make_chord(1)}).options(
         node_color=dim('Label').categorize({0: 'red', 1: 'green', 2: 'blue', 3: 'black'})
     )
     plot = mpl_renderer.get_plot(hmap)
     arcs = plot.handles['arcs']
     nodes = plot.handles['nodes']
     colors = np.array([
         [1, 0, 0, 1], [0, 0.501961, 0, 1], [0, 0, 1, 1]
     ])
     self.assertEqual(arcs.get_edgecolors(), colors)
     self.assertEqual(nodes.get_facecolors(), colors)
     plot.update((1,))
     colors = np.array([
         [0, 0.501961, 0, 1], [0, 0, 1, 1], [0, 0, 0, 1]
     ])
     self.assertEqual(arcs.get_edgecolors(), colors)
     self.assertEqual(nodes.get_facecolors(), colors)
Beispiel #8
0
 def test_multi_dim_expression_not_applies(self):
     self.assertEqual((dim('foo')-dim('bar')).applies(self.dataset),
                      False)
Beispiel #9
0
 def test_sub_transform(self):
     self.assertEqual((dim('int')-10).apply(self.dataset), self.linear_ints-10)
Beispiel #10
0
 def test_min_transform(self):
     self.assertEqual(dim('float').min().apply(self.dataset),
                      self.linear_floats.min())
Beispiel #11
0
 def test_rsub_transform(self):
     self.assertEqual((10-dim('int')).apply(self.dataset), 10-self.linear_ints)
Beispiel #12
0
 def test_rdiv_transform(self):
     self.assertEqual((10./dim('int')).apply(self.dataset), 10./self.linear_ints)
Beispiel #13
0
 def test_mod_transform(self):
     self.assertEqual((dim('int')%2).apply(self.dataset), self.linear_ints%2)
Beispiel #14
0
 def test_rsub_transform(self):
     self.assertEqual((10-dim('int')).apply(self.dataset), 10-self.linear_ints)
Beispiel #15
0
 def test_rmul_transform(self):
     self.assertEqual((10.*dim('float')).apply(self.dataset), self.linear_ints)
Beispiel #16
0
 def test_rmod_transform(self):
     self.assertEqual((2%dim('int')).apply(self.dataset), 2%self.linear_ints)
Beispiel #17
0
 def test_rfloor_div_transform(self):
     self.assertEqual((2//dim('int')).apply(self.dataset), 2//self.linear_ints)
Beispiel #18
0
 def test_rdiv_transform(self):
     self.assertEqual((10./dim('int')).apply(self.dataset), 10./self.linear_ints)
Beispiel #19
0
 def test_radd_transform(self):
     self.assertEqual((1+dim('float')).apply(self.dataset), 1+self.linear_floats)
Beispiel #20
0
 def test_neg_transform(self):
     self.assertEqual(-dim('negative').apply(self.dataset), self.linear_floats)
Beispiel #21
0
 def test_div_transform(self):
     self.assertEqual((dim('int')/10.).apply(self.dataset), self.linear_floats)
Beispiel #22
0
 def test_ufunc_transform(self):
     self.assertEqual(np.sin(dim('float')).apply(self.dataset), np.sin(self.linear_floats))
Beispiel #23
0
 def test_sub_transform(self):
     self.assertEqual((dim('int')-10).apply(self.dataset), self.linear_ints-10)
Beispiel #24
0
 def test_astype_transform(self):
     self.assertEqual(dim('int').astype(str).apply(self.dataset),
                      self.linear_ints.astype(str))
Beispiel #25
0
 def test_rmod_transform(self):
     self.assertEqual((2%dim('int')).apply(self.dataset), 2%self.linear_ints)
Beispiel #26
0
 def test_cumsum_transform(self):
     self.assertEqual(dim('float').cumsum().apply(self.dataset),
                      self.linear_floats.cumsum())
Beispiel #27
0
 def test_astype_transform(self):
     self.assertEqual(dim('int').astype(str).apply(self.dataset),
                      self.linear_ints.astype(str))
Beispiel #28
0
 def test_min_transform(self):
     self.assertEqual(dim('float').min().apply(self.dataset),
                      self.linear_floats.min())
Beispiel #29
0
 def test_chord_edge_color_style_mapping(self):
     g = self.chord.opts(style=dict(edge_color=dim('start').astype(str), edge_cmap=['#FFFFFF', '#000000']))
     plot = mpl_renderer.get_plot(g)
     edges = plot.handles['edges']
     self.assertEqual(edges.get_array(), np.array([0, 0, 1]))
     self.assertEqual(edges.get_clim(), (0, 2))
Beispiel #30
0
 def test_round_transform(self):
     self.assertEqual(dim('float').round().apply(self.dataset),
                      self.linear_floats.round())
Beispiel #31
0
 def test_abs_transform(self):
     expr = abs(dim('negative'))
     self.check_apply(expr, self.linear_floats)
Beispiel #32
0
 def test_neg_transform(self):
     expr = -dim('negative')
     self.check_apply(expr, self.linear_floats)
Beispiel #33
0
 def test_multi_dim_expression_applies(self):
     self.assertEqual((dim('int')-dim('float')).applies(self.dataset),
                      True)
Beispiel #34
0
 def test_add_transform(self):
     expr = dim('float') + 1
     self.check_apply(expr, self.linear_floats+1)
Beispiel #35
0
 def test_multi_dim_expression_partial_applies(self):
     self.assertEqual((dim('int')-dim('bar')).applies(self.dataset),
                      False)
Beispiel #36
0
 def test_div_transform(self):
     expr = dim('int') / 10.
     self.check_apply(expr, self.linear_floats)
Beispiel #37
0
 def test_add_transform(self):
     self.assertEqual((dim('float')+1).apply(self.dataset), self.linear_floats+1)
Beispiel #38
0
 def test_floor_div_transform(self):
     expr = dim('int') // 2
     self.check_apply(expr, self.linear_ints//2)
Beispiel #39
0
 def test_floor_div_transform(self):
     self.assertEqual((dim('int')//2).apply(self.dataset), self.linear_ints//2)
Beispiel #40
0
 def test_mod_transform(self):
     expr = dim('int') % 2
     self.check_apply(expr, self.linear_ints % 2)
Beispiel #41
0
 def test_pow_transform(self):
     self.assertEqual((dim('int')**2).apply(self.dataset), self.linear_ints**2)
Beispiel #42
0
 def test_mul_transform(self):
     expr = dim('float') * 10.
     self.check_apply(expr, self.linear_ints.astype('float64'))
Beispiel #43
0
 def test_radd_transform(self):
     self.assertEqual((1+dim('float')).apply(self.dataset), 1+self.linear_floats)
Beispiel #44
0
 def test_pow_transform(self):
     expr = dim('int') ** 2
     self.check_apply(expr, self.linear_ints ** 2)
Beispiel #45
0
 def test_rfloor_div_transform(self):
     self.assertEqual((2//dim('int')).apply(self.dataset), 2//self.linear_ints)
Beispiel #46
0
 def test_sub_transform(self):
     expr = dim('int') - 10
     self.check_apply(expr, self.linear_ints - 10)
Beispiel #47
0
 def test_rmul_transform(self):
     self.assertEqual((10.*dim('float')).apply(self.dataset), self.linear_ints)
Beispiel #48
0
 def test_radd_transform(self):
     expr = 1 + dim('float')
     self.check_apply(expr, 1 + self.linear_floats)
Beispiel #49
0
 def test_ufunc_transform(self):
     self.assertEqual(np.sin(dim('float')).apply(self.dataset), np.sin(self.linear_floats))
Beispiel #50
0
 def test_rdiv_transform(self):
     expr = 10. / dim('int')
     self.check_apply(expr, 10. / self.linear_ints)
Beispiel #51
0
 def test_cumsum_transform(self):
     self.assertEqual(dim('float').cumsum().apply(self.dataset),
                      self.linear_floats.cumsum())
Beispiel #52
0
 def test_rfloor_div_transform(self):
     expr = 2 // dim('int')
     self.check_apply(expr, 2 // self.linear_ints)
Beispiel #53
0
 def test_round_transform(self):
     self.assertEqual(dim('float').round().apply(self.dataset),
                      self.linear_floats.round())
Beispiel #54
0
 def test_add_transform(self):
     self.assertEqual((dim('float')+1).apply(self.dataset), self.linear_floats+1)
Beispiel #55
0
 def test_floor_div_transform(self):
     self.assertEqual((dim('int')//2).apply(self.dataset), self.linear_ints//2)
Beispiel #56
0
 def test_mod_transform(self):
     self.assertEqual((dim('int')%2).apply(self.dataset), self.linear_ints%2)
Beispiel #57
0
 def test_div_transform(self):
     self.assertEqual((dim('int')/10.).apply(self.dataset), self.linear_floats)
Beispiel #58
0
 def test_multi_operator_expression_repr(self):
     self.assertEqual(repr(((dim('float')-2)*3)**2),
                      "((dim('float')-2)*3)**2")
Beispiel #59
0
 def test_neg_transform(self):
     self.assertEqual(-dim('negative').apply(self.dataset), self.linear_floats)
Beispiel #60
0
 def test_pow_transform(self):
     self.assertEqual((dim('int')**2).apply(self.dataset), self.linear_ints**2)