带有线条字形的 Bokeh CDSView

Bokeh CDSView with line glyphs

我正在使用具有 nan 值的 Bokeh 线条字形来创建具有许多线段的图像。

我想有选择地关闭其中一些字形。实现此目标的最佳方法是什么?

我的第一次尝试是有一个 visible 列,并使用 CDSView 来打开或关闭每个线段。然而,这没有效果,我怀疑是因为散景将所有这些线段识别为单个字形。有没有办法使用 CDSView 关闭 line 字形的各个部分?是否有我应该查看的另一个字形?

最简单的方法是使用 multi_line 字形,它可以让您绘制许多声明为单独数组的单独线段。完成后,您可以通过声明一个单独的 alpha 列来控制每个线段的可见性。这是一个最小的例子:

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

p = figure()
source = ColumnDataSource(data={
    'xs': [[1, 2, 3], [1, 2, 3]],
    'ys': [[1, 2, 3], [2, 3, 4]],
    'alpha': [0, 1]
})
p.multi_line(xs='xs', ys='ys', line_alpha='alpha', source=source)
show(p)