如何在GMAPPlot上使用带有MultiLine的CDSView?

问题描述 投票:0回答:1

((第一个问题,很抱歉)

散景1.3.4

情况:

我正在尝试使用CDSView在顶部绘制Bokeh MultiLine,所有现有示例似乎都使用带有帮助器(multi_line)的“ figure”对象,该帮助器接受视图作为参数。我在不支持multi_line(仅支持MultiLine)的GMAPPlot上执行此操作(请参见下文)。注释掉的行引发错误,提示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(如何将其添加到渲染器?)

Screenshot of unfiltered data set

bokeh renderer
1个回答
0
投票

似乎GMAPPlot仅喜欢该模式:

create glyph
add glyph

这已经有一段时间了。有一个更高级别的bokeh.plotting.gmap函数可以创建和配置带有默认轴等的bokeh.plotting.gmap实例,并且还具有与GMapPlot相同的方法和便利性(例如figure)。与通过低级对象手工组装所有东西相比,走这条路线的工作要少得多。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.