Пользовательские подсказки Bokeh укладываются друг на друга - PullRequest
2 голосов
/ 08 ноября 2019

У меня есть диаграмма рассеяния с настраиваемыми всплывающими подсказками, когда при наведении курсора на часть экранов, где две точки перекрывают подсказки для обеих, нарисованы друг над другом.

Есть ли способ объединить эти два водна подсказка, как подсказка по умолчанию, или заставляет их рисовать непересекающимися способами?

Ответы [ 2 ]

1 голос
/ 08 ноября 2019

Этот код никогда не будет отображать более 1 всплывающей подсказки (Bokeh v1.3.0):

from bokeh.plotting import figure, show
from bokeh.models import CustomJS

data = dict(
        x=[1, 2, 3],
        y=[1, 2, 3],
        color=['red', 'green', 'blue'], ) 

p = figure(tooltips=[('x','@x'),('y', '@y')])
p.circle('x', 'y', color='color', size=10, source = data)

code= '''if (cb_data.index.indices.length > 1) {
            document.getElementsByClassName('bk-tooltip')[0].style.display = 'none'; 
        }'''

p.hover.callback = CustomJS(code = code)

show(p)

Недостатком этого решения является то, что, когда все точки точно перекрывают друг друга, подсказки не будут отображаться вообще

enter image description here

0 голосов
/ 08 ноября 2019

По состоянию на Боке 1.4 нет. Существует открытый выпуск , касающийся добавления ловушки для фильтрации результатов теста на попадание, например, для ограничения только одним результатом или небольшим фиксированным числом результатов. Но это немного отличается от предоставления «визуальной уклонения», которая сделает любые результаты не перекрывающимися. Если это ваша основная проблема, я бы предложил полностью исключить всплывающие подсказки и использовать callback на инструменте наведения, чтобы обновить какой-либо другой внеплановый Div информацией в таблице или каким-либо другим подходящим сжатым представлением.

...