|
3 | 3 | from __future__ import annotations |
4 | 4 |
|
5 | 5 | import json |
6 | | -from random import shuffle |
7 | 6 | from textwrap import dedent |
8 | 7 | from typing import ( |
9 | 8 | TYPE_CHECKING, |
@@ -84,6 +83,7 @@ def __geo_interface__(self) -> dict: ... |
84 | 83 | "#FFFF66", # yellow |
85 | 84 | "#00FFFF", # turquoise |
86 | 85 | ] |
| 86 | +COLOR_COUNTER = 0 |
87 | 87 | DEFAULT_POLYGON_LINE_COLOR = [0, 0, 0, 200] |
88 | 88 |
|
89 | 89 |
|
@@ -191,30 +191,33 @@ def viz( |
191 | 191 | Returns: |
192 | 192 | widget visualizing the provided data. |
193 | 193 | """ |
| 194 | + global COLOR_COUNTER |
194 | 195 | color_ordering = COLORS.copy() |
195 | | - shuffle(color_ordering) |
196 | 196 |
|
197 | 197 | if isinstance(data, (list, tuple)): |
198 | 198 | layers: List[Union[ScatterplotLayer, PathLayer, PolygonLayer]] = [] |
199 | 199 | for i, item in enumerate(data): |
200 | 200 | ls = create_layers_from_data_input( |
201 | 201 | item, |
202 | | - _viz_color=color_ordering[i % len(color_ordering)], |
| 202 | + _viz_color=color_ordering[(COLOR_COUNTER + i) % len(color_ordering)], |
203 | 203 | scatterplot_kwargs=scatterplot_kwargs, |
204 | 204 | path_kwargs=path_kwargs, |
205 | 205 | polygon_kwargs=polygon_kwargs, |
206 | 206 | con=con, |
207 | 207 | ) |
208 | 208 | layers.extend(ls) |
| 209 | + |
| 210 | + COLOR_COUNTER += len(layers) |
209 | 211 | else: |
210 | 212 | layers = create_layers_from_data_input( |
211 | 213 | data, |
212 | | - _viz_color=color_ordering[0], |
| 214 | + _viz_color=color_ordering[COLOR_COUNTER % len(color_ordering)], |
213 | 215 | scatterplot_kwargs=scatterplot_kwargs, |
214 | 216 | path_kwargs=path_kwargs, |
215 | 217 | polygon_kwargs=polygon_kwargs, |
216 | 218 | con=con, |
217 | 219 | ) |
| 220 | + COLOR_COUNTER += 1 |
218 | 221 |
|
219 | 222 | map_kwargs = {} if not map_kwargs else map_kwargs |
220 | 223 |
|
|
0 commit comments