Я вижу два способа сделать это:
1.Проверка того, что имя равно None с Python и использование нескольких HoverTool
Поскольку HoverTool является bokeh.models.tools, вы можете добавить его с помощью
p.add_tools(hovertool)
Таким образом, вы можете сделать два экземпляраHoverTool и разделите ваши данные на два источника данных:
p = figure(title="Cluster Activity",
plot_width=1200,
plot_height=700,
toolbar_location=None)
without = p.square(name="without", ##your filtered data source without names)
with = p.square(name="with", ##your filtered data source with names)
hoverwith = HoverTool(names=["with"],tooltips=TOOLTIPS = [
("Usage", "@{usage}%"),
("Name", "@name"),
("PID", "@pid"),
("Command", "@command"),
("User", "@user"),
])
hoverwithout = HoverTool(names=["without"],tooltips=TOOLTIPS = [
("Usage", "@{usage}%"),
("PID", "@pid"),
("Command", "@command"),
("User", "@user"),
])
p.add_tools(hoverwith, hoverwithout)
С помощью атрибута names HoverTool вы можете указать, для каких глифов будет отображаться наведение.Я не проверял код.
2.Использование пользовательского JS (просто упоминание для полноты)
Если у вас много разных комбинаций возможных пропущенных значений, я рассматриваю только JS как способ сделать это, посмотрите здесь: https://groups.google.com/a/continuum.io/forum/#!msg/bokeh/4VxEbPaLqnA/-qYLDsbZAwAJ