Я бы не хотел показывать значения NaN (сделанные с помощью numpy.nan) матрицы в бэкэнде Bokeh.Я пытался использовать CustomJSHover, но я ничего не смог сделать, потому что я получил ошибки и для простого примера.
код:
import numpy as np
import xarray as xr
import holoviews as hv
import geoviews as gv
hv.extension('bokeh','matplotlib')
import cartopy.crs as crs
from bokeh.models import HoverTool, CustomJSHover
x,y = np.mgrid[-50:51, -50:51] * 0.1
r = 0.5*np.sin(np.pi +3*x**2+y**2)+0.5
r[r<0.5]=np.nan
coords=np.arange(0,101)
custom=CustomJSHover(code="""
return value + " tot"
""")
tooltips=[
("value","@image{1.1}"), # GIVES RIGHT VALUE BUT WITH NaNs (0.1..0.6.. etc)
("value","@image{custom}") # GIVES some strange 0th, 1st, ... or NaN
]
hover = HoverTool(tooltips=tooltips, formatters={'image' : custom})
ds = xr.Dataset({'R': (['x', 'y'],r)},coords={'x': (['x'], coords),'y': (['y'], coords)})
ensemble = gv.Image(ds, kdims=['x', 'y'],vdims=[ 'R']).opts(tools=[hover])
ensemble
Я хотел быNaN
значения не отображаются в формате {2.1}, а NaN
значения белого цвета, поэтому они не отображаются вообще при наведении.