Как создать пользовательский инструмент наведения с отображением значения - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь создать пользовательский инструмент для наведения, который использует значение 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

Дайте мне знать, как я могу получить новое значение в инструменте наведения, чтобы при значении ч / б 0 и 1 это будет

Спасибо

1 Ответ

2 голосов
/ 21 апреля 2020

Вот как я это сделаю:

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 и просто добавить к это полностью преобразованная колонна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...