Как использовать CDSView с MultiLine на GMAPPlot? - PullRequest
0 голосов
/ 03 октября 2019

(Первый вопрос, так что извинения)

Bokeh 1.3.4

Ситуация:

Я пытаюсь нанести на карту Bokeh MultiLine, используя CDSView, и все существующие примеры кажутсяиспользовать объект "figure", у которого есть помощник (multi_line), который принимает представление в качестве аргумента. Я делаю это поверх GMAPPlot, который не поддерживает multi_line (только MultiLine) (см. Ниже). В закомментированной строке выдается сообщение о том, что GMAPPlot не поддерживает multi_line.

plot = GMapPlot(
        x_range=Range1d(), y_range=Range1d(), map_options=map_options, sizing_mode='scale_height'
    )
.
.
.
sel_sa1s = []
v_bf = [True if sa1_val in sel_sa1s else False for sa1_val in v_source.data['SA1']]
v_view = CDSView(source=v_source, filters=[BooleanFilter(v_bf)])
v_ml = MultiLine(xs="xs",ys="ys",line_color="black", line_width="w")

#v_rend = plot.multi_line(xs="xs",ys="ys",line_color="black", line_width="w", source=v_source, view=v_view)

v_rend = plot.add_glyph(v_source, v_ml, name='votes')

Приведенный выше фрагмент кода работает и отображает всю сеть (очень перегруженную), поскольку нет фильтра. Я хочу, чтобы фильтр был инициализирован, чтобы скрыть все, а затем, когда пользователь нажимает на область (SA1), он отображает сеть, связанную с этим SA1.

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

Кажется, что GMAPPlot нравится только шаблон:

  • создать глиф
  • добавить глиф

Итак, мой вопрос - как использовать CDSView в этой среде (как добавить его врендер?)

Скриншот нефильтрованного набора данных

1 Ответ

0 голосов
/ 03 октября 2019

Кажется, что GMAPPlot нравится только шаблон:

create glyph
add glyph

Это не было верно в течение некоторого времени. Существует функция более высокого уровня bokeh.plotting.gmap, которая создает и настраивает GMapPlot экземпляры с осями по умолчанию и т. Д., А также имеет все те же методы и удобства, что и figure (например, multi_line). Этот путь будет гораздо менее трудоемким, чем сборка всего вручную из низкоуровневых объектов.

...