У меня есть сетка 100x100 км GeoDataFrame (Mollweide), которую я строю как gv.Image
с классифицированными значениями (8 категорий) через Holoviews / Bokeh:
# convert GeoDataFrame to xarray object
xa_dataset = gv.Dataset(grid.to_xarray(), vdims=f'{metric}_cat', crs=crs.Mollweide())
# convert to gv.Image
img_grid = xa_dataset.to(gv.Image)
# custom tooltip
hover = HoverTool(
tooltips=[
("index", "$index"),
("data (using $) (x,y)", "($x, $y)"),
("data (using @) (x,y)", "(@x, @y)"),
("canvas (x,y)", "($sx, $sy)"),
("Category", "@image"),
])
image_layer = img_grid.opts(
cmap=cmap_with_nodata,
colorbar=True,
colorbar_opts={
'formatter': formatter,
'major_label_text_align':'left'},
tools=[hover],
# optional unpack of width and height
**{k: v for k, v in optional_kwargs.items() if v is not None}
)
# combine layers and set global plotting options
gv_layers = (image_layer * gf.coastline * gf.borders).opts(
projection=crs.Mollweide(),
global_extent=True,
responsive=responsive,
finalize_hooks=[set_active_tool],
title_format=title)
Я могу отобразить значения изображения как Всплывающие подсказки HoverTool, приведенные выше приведут к следующей всплывающей подсказке:
Однако, чтобы сделать это более полезным, я хотел бы показать точные значения для каждая ячейка из моего исходного GeoDataFrame, а не классифицированные значения из изображения (ссылочный номер класса показан выше с Category
во всплывающей подсказке). canvas (x,y)
указывает на мои x и y корзины из моего GeoDataFrame. Можно ли сделать запрос всплывающей подсказки в моем исходном GeoDataFrame, чтобы показать точные значения каждого бина, а не классифицированных?
Я пытался создать дополнительный bokeh.plotting.ColumnDataSource
:
grid_df = pd.DataFrame(grid[[col for col in grid.columns if col != grid._geometry_column_name]])
source = ColumnDataSource.from_df(grid_df)
Но я не знаю, как добавить этот источник «невидимый» поверх слоя gv.Image
только для того, чтобы показывать всплывающие подсказки с точными значениями.
Я знаю, что это как-то противоречит принципу боке, что все, что Показано также должны быть включены в данные. Но в этом случае добавление точной информации всплывающей подсказки значительно повысило бы удобство использования интерактивного графика в моем контексте.