1

プロットの 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

xyfloat 値になります。したがって、y座標をmapping辞書内の対応する値にマップするという考え方です

ホバー ツールで新しい値を取得する方法を教えてください。値が b/w 0 と 1 のときに、

ありがとう

4

1 に答える 1

3

これが私がそれを行う方法です:

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して、完全に変換された列を追加する必要があります。

于 2020-04-21T11:35:55.990 に答える