1) Обратного звонка нет.Инструмент отвечает за определение геометрии выделения, а затем тестирование попаданий на основе этой геометрии.Результаты теста на попадание сохраняются в свойстве selection
источника данных.Средства визуализации глифов рисуют глифы на основе свойства selection
их источника данных.Если два средства визуализации глифов (даже на разных графиках) совместно используют один и тот же источник данных, они оба будут рисовать один и тот же набор выбранных / невыбранных в результате.
2) Если вы имеете в виду внешний вид обычного или выбранного объекта, а не выбранного объекта, как настроить его, как описано в документации здесь:
https://bokeh.pydata.org/en/1.0.2/docs/user_guide/styling.html#selected-and-unselected-glyphs
Существует также несколько свойств самого объекта LassoTool
, которые контролируют, например, следует ли делать выбор при каждом перемещении мыши или только при перемещении мыши, и как выглядит наложение выделения.Все они записаны в ReferenceGuide.Если вы спрашиваете, как изменить реализацию, как в msot все в Bokeh, настоящая работа не выполняется в Python, она выполняется в библиотеке JavaScript BokehJS.Реализация LassoTool здесь:
https://github.com/bokeh/bokeh/blob/master/bokehjs/src/lib/models/tools/gestures/lasso_select_tool.ts
Если вы хотите чего-то принципиально другого, вам нужно реализовать собственную модель, включая ее компонент JavaScript.Существует целый раздел Руководства пользователя по созданию пользовательских расширений:
https://bokeh.pydata.org/en/1.0.2/docs/user_guide/extensions.html
3) На графике настроены различные средства визуализации, одним из которых может быть GlyphRenderer.Сам GlyphRenderer ничего не рисует, но он настраивает различные субглифы, которые используются для рисования в определенных ситуациях:
glyph
рисует «нормальные» версии глифов (то есть, когда нет выделенияв источнике данных) selected_glyph
рисует «выбранные» версии глифов (т. е. те, которые внутри инструмента «Лассо» или «Ящик», когда выделение активно) nonselected_glyph
рисует «не-выбранные "версии глифов (то есть те, которые находятся вне инструмента лассо или бокса, когда выделение активно). По умолчанию невыделенный глиф является просто копией" обычного "глифа с альфа-значением, установленным очень низким. hover_glyph
рисует «скрытые» версии глифов (то есть, когда инструмент для наведения их осматривал)
Вы настраиваете внешний вид в другой ситуации, настраивая свойства для глифов, которые используются вкаждая ситуация.Для них есть разумные значения по умолчанию, но они могут быть обновлены, как описано в первой ссылке 2)
4) BokehJS имеет внутреннюю систему событий сигнала / слотов, которая используется (среди прочего) для запроса перерисовок холставсякий раз, когда различные свойства меняются.