虚化服务器 - 使用轻敲工具改变选择时的字形颜色。

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

我想使用带有Bokeh服务器的TapTool来运行一个带有一些附加功能的回调。

我想选择的字形是在背景图像的顶部。

如果我用TapTool选择一个字形,该字形会保持其不透明度,但所有其他字形的不透明度会降低。问题是,当这些字形变得更不透明时,它们在背景图像上不能被很好地看到。

有没有办法让所有字形的alpha值都保持在100%,而改变所选字形的颜色?

下面是我找到的一些示例代码作为开始 此处

from bokeh import plotting as bplt
from bokeh import layouts as blayouts
from bokeh import models as bmodels
from bokeh import io as bio

fig = bplt.figure(tools="tap")

source = bmodels.ColumnDataSource(dict(x=[0,1], y=[0,1]))

r = fig.circle('x', 'y', source=source, size=10)

def handler(attr, old, new):
    print('attr: {} old: {} new: {}'.format(attr, old, new))

# r.data_source.on_change('selected', handler)
r.data_source.selected.on_change('indices', handler)

bio.curdoc().add_root(blayouts.layout([[fig]]))
python server bokeh interactive
1个回答
0
投票

这是一个bokeh 2.0.1的工作例子。

from bokeh import plotting as bplt
from bokeh import layouts as blayouts
from bokeh import models as bmodels
from bokeh import io as bio

fig = bplt.figure(tools="tap")

source = bmodels.ColumnDataSource(dict(x=[0,1], y=[0,1]))

r = fig.circle('x', 'y', source=source, size=10, color='#000000',
        # set visual properties for selected glyphs
                    selection_color="#2bff00",

                    # set visual properties for non-selected glyphs
                    nonselection_fill_alpha=1.0,
                    nonselection_fill_color="#000000")

def handler(attr, old, new):
    print('attr: {} old: {} new: {}'.format(attr, old, new))

# r.data_source.on_change('selected', handler)
r.data_source.selected.on_change('indices', handler)

bio.curdoc().add_root(blayouts.layout([[fig]]))
© www.soinside.com 2019 - 2024. All rights reserved.