Closed
Description
Through ship traffics, I realized I can add hover tooltips to datashaded/rasterized plots; either through hd.inspect_points
or a lookup_hook.
https://examples.holoviz.org/gallery/ship_traffic/ship_traffic.html#selecting-specific-datapoints
Can we have a reasonable default for hvPlot when hover=True
? Or even HoloViews?
import pandas as pd
import hvplot.pandas
import panel as pn
import datashader as ds
import holoviews as hv
import holoviews.operation.datashader as hd
pop = pd.DataFrame(
{
"lon": [-86.75, -86.5, -86.25, -86.0],
"lat": [33.75, 34.0, 34.25, 34.5],
"population": [100, 200, 300, 400],
"R": ["A", "B", "A", "B"],
}
)
# lon_lat_to_easting_northing
pop["x"], pop["y"] = hv.util.transform.lon_lat_to_easting_northing(
pop["lon"], pop["lat"]
)
tiles = hv.element.tiles.EsriStreet()
alpha_slider = pn.widgets.FloatSlider(name="Population", start=0, end=1, step=0.1)
highlighter = hd.inspect_points.instance(streams=[hv.streams.Tap])
points = pop.hvplot.points(
"x",
"y",
datashade=True,
aggregator=ds.count_cat("R"),
dynspread=True,
height=800,
width=1000,
)
highlight = highlighter(points).opts(
color="white", tools=["hover"], marker="square", size=10, fill_alpha=0
)
points * highlight
Currently, if you just do hover=True alongside datashade, it gives a useless RGB value
points = pop.hvplot.points(
"x",
"y",
datashade=True,
aggregator=ds.count_cat("R"),
dynspread=True,
height=800,
width=1000,
hover=True
)
points

Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Done