散景显示点击文字

时间:2018-07-12 18:05:39

标签: python bokeh

我看到了这个例子

from bokeh.models import ColumnDataSource, OpenURL, TapTool
from bokeh.plotting import figure, output_file, show

output_file("openurl.html")

p = figure(plot_width=400, plot_height=400,
           tools="tap", title="Click the Dots")

source = ColumnDataSource(data=dict(
    x=[1, 2, 3, 4, 5],
    y=[2, 5, 8, 2, 7],
    color=["navy", "orange", "olive", "firebrick", "gold"]
    ))

p.circle('x', 'y', color='color', size=20, source=source)

# use the "color" column of the CDS to complete the URL
# e.g. if the glyph at index 10 is selected, then @color
# will be replaced with source.data['color'][10]
url = "http://www.colors.commutercreative.com/@color/"
taptool = p.select(type=TapTool)
taptool.callback = OpenURL(url=url)

show(p)

我想做类似的事情,而不是打开URL,而是想在单击与该圆圈相关的圆圈时在右侧显示一些文本。当我单击另一个圆圈时,文字应该会更改。

我还看到了这样的文字:https://bokeh.pydata.org/en/latest/docs/user_guide/interaction/callbacks.html#customjs-for-user-interaction-events,但是我无法更改带有基于圆圈的文本的鼠标打印。

谢谢。

1 个答案:

答案 0 :(得分:0)

使用map代替In [1]: foo = [[[2, 2, 2], [1, 1, 1], [3, 3, 3]], [[2, 2, 2], [1, 1, 1], [3, 3, 3]]] In [2]: list(map(sorted, foo)) Out[2]: [[[1, 1, 1], [2, 2, 2], [3, 3, 3]], [[1, 1, 1], [2, 2, 2], [3, 3, 3]]]

CustomJS

更多说明,请参见此处JavaScript callback to get selected glyph index in Bokeh