带有线条字形的 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)
我正在使用具有 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)