如何使用值映射创建自定义悬停工具
How to create custom hover tool with value mapping
我正在尝试创建一个自定义悬停工具,使用它获取绘图的 y 值并将该值映射到不同的值。
到目前为止,我可以想出的实现此功能的代码是
from bokeh.models import HoverTool
import holoviews as hv
df = pd.DataFrame(
{
"zero": [0, 0, 0, 0, 0, 0, 0],
"one": [1, 1, 1, 1, 1, 1, 1],
"two": [2, 2, 2, 2, 2, 2, 2],
}
)
mapping = {i: c for i, c in enumerate(df.columns)}
def col_mapping(num):
return mapping[int(num)]
hover = HoverTool(tooltips=[("x", "$x"), ("y", "$y")])
img = hv.Image((df.index, np.arange(df.shape[1]), df.T)).opts(tools=[hover])
img
x
和 y
将是浮点值。所以想法是将 y
坐标映射到 mapping
字典中的相应值
请告诉我如何在悬停工具中获取新值,以便当值是 b/w 0 和 1 时它将是
谢谢
这是我的做法:
code = f"return ({json.dumps(mapping)})[Math.floor(special_vars.y)];"
hover = HoverTool(tooltips=[("x", "$x"), ("y", "$y"), ('mapped_y', '$y{0}')],
formatters={'$y': CustomJSHover(code=code)})
如果您需要比 col_mapping
更复杂的代码,那么您必须使用 ColumnDataSource
并向其中添加完全转换的列。
我正在尝试创建一个自定义悬停工具,使用它获取绘图的 y 值并将该值映射到不同的值。
到目前为止,我可以想出的实现此功能的代码是
from bokeh.models import HoverTool
import holoviews as hv
df = pd.DataFrame(
{
"zero": [0, 0, 0, 0, 0, 0, 0],
"one": [1, 1, 1, 1, 1, 1, 1],
"two": [2, 2, 2, 2, 2, 2, 2],
}
)
mapping = {i: c for i, c in enumerate(df.columns)}
def col_mapping(num):
return mapping[int(num)]
hover = HoverTool(tooltips=[("x", "$x"), ("y", "$y")])
img = hv.Image((df.index, np.arange(df.shape[1]), df.T)).opts(tools=[hover])
img
x
和 y
将是浮点值。所以想法是将 y
坐标映射到 mapping
字典中的相应值
请告诉我如何在悬停工具中获取新值,以便当值是 b/w 0 和 1 时它将是
谢谢
这是我的做法:
code = f"return ({json.dumps(mapping)})[Math.floor(special_vars.y)];"
hover = HoverTool(tooltips=[("x", "$x"), ("y", "$y"), ('mapped_y', '$y{0}')],
formatters={'$y': CustomJSHover(code=code)})
如果您需要比 col_mapping
更复杂的代码,那么您必须使用 ColumnDataSource
并向其中添加完全转换的列。