示例#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, '-')
示例#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])
示例#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})
示例#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]
     ]))
示例#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, '-')
示例#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])
示例#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)
示例#8
0
 def test_multi_dim_expression_not_applies(self):
     self.assertEqual((dim('foo')-dim('bar')).applies(self.dataset),
                      False)
示例#9
0
 def test_sub_transform(self):
     self.assertEqual((dim('int')-10).apply(self.dataset), self.linear_ints-10)
示例#10
0
 def test_min_transform(self):
     self.assertEqual(dim('float').min().apply(self.dataset),
                      self.linear_floats.min())
示例#11
0
 def test_rsub_transform(self):
     self.assertEqual((10-dim('int')).apply(self.dataset), 10-self.linear_ints)
示例#12
0
 def test_rdiv_transform(self):
     self.assertEqual((10./dim('int')).apply(self.dataset), 10./self.linear_ints)
示例#13
0
 def test_mod_transform(self):
     self.assertEqual((dim('int')%2).apply(self.dataset), self.linear_ints%2)
示例#14
0
 def test_rsub_transform(self):
     self.assertEqual((10-dim('int')).apply(self.dataset), 10-self.linear_ints)
示例#15
0
 def test_rmul_transform(self):
     self.assertEqual((10.*dim('float')).apply(self.dataset), self.linear_ints)
示例#16
0
 def test_rmod_transform(self):
     self.assertEqual((2%dim('int')).apply(self.dataset), 2%self.linear_ints)
示例#17
0
 def test_rfloor_div_transform(self):
     self.assertEqual((2//dim('int')).apply(self.dataset), 2//self.linear_ints)
示例#18
0
 def test_rdiv_transform(self):
     self.assertEqual((10./dim('int')).apply(self.dataset), 10./self.linear_ints)
示例#19
0
 def test_radd_transform(self):
     self.assertEqual((1+dim('float')).apply(self.dataset), 1+self.linear_floats)
示例#20
0
 def test_neg_transform(self):
     self.assertEqual(-dim('negative').apply(self.dataset), self.linear_floats)
示例#21
0
 def test_div_transform(self):
     self.assertEqual((dim('int')/10.).apply(self.dataset), self.linear_floats)
示例#22
0
 def test_ufunc_transform(self):
     self.assertEqual(np.sin(dim('float')).apply(self.dataset), np.sin(self.linear_floats))
示例#23
0
 def test_sub_transform(self):
     self.assertEqual((dim('int')-10).apply(self.dataset), self.linear_ints-10)
示例#24
0
 def test_astype_transform(self):
     self.assertEqual(dim('int').astype(str).apply(self.dataset),
                      self.linear_ints.astype(str))
示例#25
0
 def test_rmod_transform(self):
     self.assertEqual((2%dim('int')).apply(self.dataset), 2%self.linear_ints)
示例#26
0
 def test_cumsum_transform(self):
     self.assertEqual(dim('float').cumsum().apply(self.dataset),
                      self.linear_floats.cumsum())
示例#27
0
 def test_astype_transform(self):
     self.assertEqual(dim('int').astype(str).apply(self.dataset),
                      self.linear_ints.astype(str))
示例#28
0
 def test_min_transform(self):
     self.assertEqual(dim('float').min().apply(self.dataset),
                      self.linear_floats.min())
示例#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))
示例#30
0
 def test_round_transform(self):
     self.assertEqual(dim('float').round().apply(self.dataset),
                      self.linear_floats.round())
示例#31
0
 def test_abs_transform(self):
     expr = abs(dim('negative'))
     self.check_apply(expr, self.linear_floats)
示例#32
0
 def test_neg_transform(self):
     expr = -dim('negative')
     self.check_apply(expr, self.linear_floats)
示例#33
0
 def test_multi_dim_expression_applies(self):
     self.assertEqual((dim('int')-dim('float')).applies(self.dataset),
                      True)
示例#34
0
 def test_add_transform(self):
     expr = dim('float') + 1
     self.check_apply(expr, self.linear_floats+1)
示例#35
0
 def test_multi_dim_expression_partial_applies(self):
     self.assertEqual((dim('int')-dim('bar')).applies(self.dataset),
                      False)
示例#36
0
 def test_div_transform(self):
     expr = dim('int') / 10.
     self.check_apply(expr, self.linear_floats)
示例#37
0
 def test_add_transform(self):
     self.assertEqual((dim('float')+1).apply(self.dataset), self.linear_floats+1)
示例#38
0
 def test_floor_div_transform(self):
     expr = dim('int') // 2
     self.check_apply(expr, self.linear_ints//2)
示例#39
0
 def test_floor_div_transform(self):
     self.assertEqual((dim('int')//2).apply(self.dataset), self.linear_ints//2)
示例#40
0
 def test_mod_transform(self):
     expr = dim('int') % 2
     self.check_apply(expr, self.linear_ints % 2)
示例#41
0
 def test_pow_transform(self):
     self.assertEqual((dim('int')**2).apply(self.dataset), self.linear_ints**2)
示例#42
0
 def test_mul_transform(self):
     expr = dim('float') * 10.
     self.check_apply(expr, self.linear_ints.astype('float64'))
示例#43
0
 def test_radd_transform(self):
     self.assertEqual((1+dim('float')).apply(self.dataset), 1+self.linear_floats)
示例#44
0
 def test_pow_transform(self):
     expr = dim('int') ** 2
     self.check_apply(expr, self.linear_ints ** 2)
示例#45
0
 def test_rfloor_div_transform(self):
     self.assertEqual((2//dim('int')).apply(self.dataset), 2//self.linear_ints)
示例#46
0
 def test_sub_transform(self):
     expr = dim('int') - 10
     self.check_apply(expr, self.linear_ints - 10)
示例#47
0
 def test_rmul_transform(self):
     self.assertEqual((10.*dim('float')).apply(self.dataset), self.linear_ints)
示例#48
0
 def test_radd_transform(self):
     expr = 1 + dim('float')
     self.check_apply(expr, 1 + self.linear_floats)
示例#49
0
 def test_ufunc_transform(self):
     self.assertEqual(np.sin(dim('float')).apply(self.dataset), np.sin(self.linear_floats))
示例#50
0
 def test_rdiv_transform(self):
     expr = 10. / dim('int')
     self.check_apply(expr, 10. / self.linear_ints)
示例#51
0
 def test_cumsum_transform(self):
     self.assertEqual(dim('float').cumsum().apply(self.dataset),
                      self.linear_floats.cumsum())
示例#52
0
 def test_rfloor_div_transform(self):
     expr = 2 // dim('int')
     self.check_apply(expr, 2 // self.linear_ints)
示例#53
0
 def test_round_transform(self):
     self.assertEqual(dim('float').round().apply(self.dataset),
                      self.linear_floats.round())
示例#54
0
 def test_add_transform(self):
     self.assertEqual((dim('float')+1).apply(self.dataset), self.linear_floats+1)
示例#55
0
 def test_floor_div_transform(self):
     self.assertEqual((dim('int')//2).apply(self.dataset), self.linear_ints//2)
示例#56
0
 def test_mod_transform(self):
     self.assertEqual((dim('int')%2).apply(self.dataset), self.linear_ints%2)
示例#57
0
 def test_div_transform(self):
     self.assertEqual((dim('int')/10.).apply(self.dataset), self.linear_floats)
示例#58
0
 def test_multi_operator_expression_repr(self):
     self.assertEqual(repr(((dim('float')-2)*3)**2),
                      "((dim('float')-2)*3)**2")
示例#59
0
 def test_neg_transform(self):
     self.assertEqual(-dim('negative').apply(self.dataset), self.linear_floats)
示例#60
0
 def test_pow_transform(self):
     self.assertEqual((dim('int')**2).apply(self.dataset), self.linear_ints**2)