Bokeh中未选定字形的视觉属性基于所选内容

时间:2017-07-13 20:43:28

标签: python bokeh glyph

我有一个字形,是一系列圆圈。我想点击一个点并更改未选择的字形的颜色/ alpha,以便每个未选择的字形具有基于它与所选点的关系的自定义颜色。

例如,我希望最接近所选点的点的alpha值接近1,最远的点的alpha值接近0。

我已经看到其他问题,其中未选择的字形具有不同的alpha,但alphas与所选的不相关。是否可以在不使用JavaScript的情况下执行此操作?

修改了更多详情:

我正在研究的特定数据集是自行车共享系统的数据集,其中包含特定站点之间的行程数据。当我点击特定电台时,我想显示用户从所选电台开始时所到目的地电台。对于n个站,数据因此具有n * n格式:对于每个站,我们有到达每个其他站的概率。理想情况下,这个概率将是未选择的站点的alpha,这样最受欢迎的目的地的alpha值接近1,而较不受欢迎的目的地的alpha值接近0。

1 个答案:

答案 0 :(得分:0)

为了避免在浏览器中使用三倍(或五倍)内存,Bokeh仅支持为非选择颜色和alpha设置“单值”。也就是说,通过将非选择属性指向ColumnDataSource列,无法对其进行矢量化。所以我只能想到两个选择:

  • 将字形拆分为不同的字形组,每个字形都有不同的nonselection_color。如果您只有几个组,这可能是可行的。当然,现在你必须对你的数据进行分区,例如五次调用p.circle而不是一次,但它完全避免使用JS。

  • CustomJS回调中使用少量JavaScript。您可以在CDS中添加一个提供未选颜色的列。当选择发生时,CustomJS回调将字形的正常颜色字段切换为指向另一列,当清除选择时,将其更改回“正常”字段。