@@ -71,7 +71,7 @@ def test_path_colored_and_split_with_extra_vdims(self):
7171 color = [0 , 0.25 , 0.5 , 0.75 ]
7272 other = ['A' , 'B' , 'C' , 'D' ]
7373 data = {'x' : xs , 'y' : ys , 'color' : color , 'other' : other }
74- path = Path ([data ], vdims = ['color' ,'other' ]).options (color_index = 'color' )
74+ path = Path ([data ], vdims = ['color' ,'other' ]).options (color_index = 'color' , tools = [ 'hover' ] )
7575 plot = bokeh_renderer .get_plot (path )
7676 source = plot .handles ['source' ]
7777
@@ -89,9 +89,9 @@ def test_path_colored_and_split_on_single_value(self):
8989 plot = bokeh_renderer .get_plot (path )
9090 source = plot .handles ['source' ]
9191
92- self .assertEqual (source .data ['xs' ], [np .array ([1 , 2 , 3 , 4 ])])
93- self .assertEqual (source .data ['ys' ], [np .array ([4 , 3 , 2 , 1 ])])
94- self .assertEqual (source .data ['color' ], np .array ([1 ]))
92+ self .assertEqual (source .data ['xs' ], [np .array ([1 , 2 ]), np . array ([ 2 , 3 ]), np . array ([ 3 , 4 ])])
93+ self .assertEqual (source .data ['ys' ], [np .array ([4 , 3 ]), np . array ([ 3 , 2 ]), np . array ([ 2 , 1 ])])
94+ self .assertEqual (source .data ['color' ], np .array ([1 , 1 , 1 ]))
9595
9696 def test_path_colored_by_levels_single_value (self ):
9797 xs = [1 , 2 , 3 , 4 ]
@@ -101,20 +101,71 @@ def test_path_colored_by_levels_single_value(self):
101101 data = {'x' : xs , 'y' : ys , 'color' : color , 'date' : date }
102102 levels = [0 , 38 , 73 , 95 , 110 , 130 , 156 , 999 ]
103103 colors = ['#5ebaff' , '#00faf4' , '#ffffcc' , '#ffe775' , '#ffc140' , '#ff8f20' , '#ff6060' ]
104- path = Path ([data ], vdims = ['color' , 'date' ]).options (color_index = 'color' , color_levels = levels , cmap = colors )
104+ path = Path ([data ], vdims = ['color' , 'date' ]).options (
105+ color_index = 'color' , color_levels = levels , cmap = colors , tools = ['hover' ])
105106 plot = bokeh_renderer .get_plot (path )
106107 source = plot .handles ['source' ]
107108 cmapper = plot .handles ['color_mapper' ]
108109
109- self .assertEqual (source .data ['xs' ], [np .array ([1 , 2 , 3 , 4 ])])
110- self .assertEqual (source .data ['ys' ], [np .array ([4 , 3 , 2 , 1 ])])
111- self .assertEqual (source .data ['color' ], np .array ([998 ]))
112- self .assertEqual (source .data ['date' ], np .array ([1533081600000000000 ]))
113- self .assertEqual (source .data ['date_dt_strings' ], np .array (['2018-08-01 00:00:00' ]))
110+ self .assertEqual (source .data ['xs' ], [np .array ([1 , 2 ]), np .array ([2 , 3 ]), np .array ([3 , 4 ])])
111+ self .assertEqual (source .data ['ys' ], [np .array ([4 , 3 ]), np .array ([3 , 2 ]), np .array ([2 , 1 ])])
112+ self .assertEqual (source .data ['color' ], np .array ([998 , 998 , 998 ]))
113+ self .assertEqual (source .data ['date' ],
114+ np .array ([1533081600000000000 , 1533081600000000000 , 1533081600000000000 ]))
115+ self .assertEqual (source .data ['date_dt_strings' ],
116+ np .array (['2018-08-01 00:00:00' , '2018-08-01 00:00:00' , '2018-08-01 00:00:00' ]))
114117 self .assertEqual (cmapper .low , 156 )
115118 self .assertEqual (cmapper .high , 999 )
116119 self .assertEqual (cmapper .palette , colors [- 1 :])
117120
121+ def test_path_continuously_varying_color_op (self ):
122+ xs = [1 , 2 , 3 , 4 ]
123+ ys = xs [::- 1 ]
124+ color = [998 , 999 , 998 , 994 ]
125+ date = np .datetime64 (dt .datetime (2018 , 8 , 1 ))
126+ data = {'x' : xs , 'y' : ys , 'color' : color , 'date' : date }
127+ levels = [0 , 38 , 73 , 95 , 110 , 130 , 156 , 999 ]
128+ colors = ['#5ebaff' , '#00faf4' , '#ffffcc' , '#ffe775' , '#ffc140' , '#ff8f20' , '#ff6060' ]
129+ path = Path ([data ], vdims = ['color' , 'date' ]).options (
130+ color = 'color' , color_levels = levels , cmap = colors , tools = ['hover' ])
131+ plot = bokeh_renderer .get_plot (path )
132+ source = plot .handles ['source' ]
133+ cmapper = plot .handles ['color_color_mapper' ]
134+
135+ self .assertEqual (source .data ['xs' ], [np .array ([1 , 2 ]), np .array ([2 , 3 ]), np .array ([3 , 4 ])])
136+ self .assertEqual (source .data ['ys' ], [np .array ([4 , 3 ]), np .array ([3 , 2 ]), np .array ([2 , 1 ])])
137+ self .assertEqual (source .data ['color' ], np .array ([998 , 999 , 998 ]))
138+ self .assertEqual (source .data ['date' ],
139+ np .array ([1533081600000000000 , 1533081600000000000 , 1533081600000000000 ]))
140+ self .assertEqual (source .data ['date_dt_strings' ],
141+ np .array (['2018-08-01 00:00:00' , '2018-08-01 00:00:00' , '2018-08-01 00:00:00' ]))
142+ self .assertEqual (cmapper .low , 994 )
143+ self .assertEqual (cmapper .high , 999 )
144+ self .assertEqual (cmapper .palette , colors [- 1 :])
145+
146+ def test_path_continuously_varying_alpha_op (self ):
147+ xs = [1 , 2 , 3 , 4 ]
148+ ys = xs [::- 1 ]
149+ alpha = [0.1 , 0.7 , 0.3 , 0.2 ]
150+ data = {'x' : xs , 'y' : ys , 'alpha' : alpha }
151+ path = Path ([data ], vdims = 'alpha' ).options (alpha = 'alpha' )
152+ plot = bokeh_renderer .get_plot (path )
153+ source = plot .handles ['source' ]
154+ self .assertEqual (source .data ['xs' ], [np .array ([1 , 2 ]), np .array ([2 , 3 ]), np .array ([3 , 4 ])])
155+ self .assertEqual (source .data ['ys' ], [np .array ([4 , 3 ]), np .array ([3 , 2 ]), np .array ([2 , 1 ])])
156+ self .assertEqual (source .data ['alpha' ], np .array ([0.1 , 0.7 , 0.3 ]))
157+
158+ def test_path_continuously_varying_line_width_op (self ):
159+ xs = [1 , 2 , 3 , 4 ]
160+ ys = xs [::- 1 ]
161+ line_width = [1 , 7 , 3 , 2 ]
162+ data = {'x' : xs , 'y' : ys , 'line_width' : line_width }
163+ path = Path ([data ], vdims = 'line_width' ).options (line_width = 'line_width' )
164+ plot = bokeh_renderer .get_plot (path )
165+ source = plot .handles ['source' ]
166+ self .assertEqual (source .data ['xs' ], [np .array ([1 , 2 ]), np .array ([2 , 3 ]), np .array ([3 , 4 ])])
167+ self .assertEqual (source .data ['ys' ], [np .array ([4 , 3 ]), np .array ([3 , 2 ]), np .array ([2 , 1 ])])
168+ self .assertEqual (source .data ['line_width' ], np .array ([1 , 7 , 3 ]))
118169
119170
120171class TestPolygonPlot (TestBokehPlot ):
0 commit comments