Reputation: 1419
I'm having trouble getting colors to work in pydeck (exacerbated by the fact there aren't error messages to hint at the problem). In particular I'm using an H3ClusterLayer
.
Using an explicit color e.g. get_fill_color=[0,255,255]
works. The problem is that I'd like to use different colors for different clusters, and I can't get that to work.
Here's a MWE. Working version:
import pandas as pd
import pydeck as pdk
from h3 import h3
polygons = [
{'type' : 'Polygon', 'coordinates' : [[[44,-115],[46,-98],[41,-88],[41,-110]]]},
{'type' : 'Polygon', 'coordinates' : [[[38,-110],[39,-88],[34,-92],[36,-118]]]},
]
hexes = [list(h3.polyfill(polygon, 3)) for polygon in polygons]
color = [
[0,255,255],
[200, 100, 0],
]
tooltip = ['foo', 'bar']
df = pd.DataFrame({'tooltip' : tooltip, 'hexes' : hexes, 'color' : color})
layer = pdk.Layer(
'H3ClusterLayer',
df,
pickable=True,
stroked=False,
filled=True,
extruded=False,
opacity=0.25,
get_hexagons='hexes',
get_fill_color=[0,255,255],
)
view_state = pdk.ViewState(latitude=38.2, longitude=-96.9, zoom=4, bearing=0, pitch=0)
r = pdk.Deck(
layers=[layer],
map_style='light',
initial_view_state=view_state,
tooltip={'text' : '{tooltip}'}
)
r.to_html("test.html")
For me the output looks like this:
Broken version: exactly the same, but changing get_fill_color=[0,255,255]
to get_fill_color='color'
. I expect this to work based on the documentation, but instead the result looks like this:
I can tell that something is happening because the tooltip still appears over where the hexes should be, but the hexes themselves don't appear.
Any idea on how to troubleshoot this?
Upvotes: 1
Views: 345