gpt4 book ai didi

javascript - Bokeh,如何使用 CustomJS 回调更改用于字形颜色的列?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:30:59 25 4
gpt4 key购买 nike

我使用 Bokeh 通过将 ColumnDataSource 传递给 figure.circle 函数来创建散点图。数据源有列为每个点指定特定颜色,每行有一个十六进制代码,因为我想使用的着色方案有些复杂。

有没有办法更改用于在小部件回调中为圆圈着色的列?我在想象一个下拉菜单,允许用户为点选择各种着色方案。

最佳答案

这是一个使用 models.Select 的解决方案示例小部件和 models.CustomJSColumnDataSource 中定义的两种着色方案中进行选择的 Figure.circle :

import bokeh
import bokeh.plotting
p = bokeh.plotting.figure(x_range=(0,4), y_range=(0,4), plot_height=200 )
csource = bokeh.models.ColumnDataSource(data=dict(
x=[1,2,3],
y=[1,2,1],
colors1=["#ff0000","#00ff00","#0000ff"],
colors2=["#ff00ff","#ffff00","#00ffff"]))
cir = p.circle(x="x",y="y",fill_color="colors1",line_color="colors1",
size=20,source=csource)
cb_cselect = bokeh.models.CustomJS(args=dict(cir=cir,csource=csource), code ="""
var selected_color = cb_obj.value;
cir.glyph.line_color.field = selected_color;
cir.glyph.fill_color.field = selected_color;
csource.trigger("change")
""")
color_select = bokeh.models.Select(title="Select colors", value="colors1",
options = ["colors1","colors2"], callback = cb_cselect)
layout = bokeh.layouts.gridplot([[p],[color_select]])
bokeh.io.output_file("output.html")
bokeh.io.show(layout)

输出看起来像 enter image description here

关于javascript - Bokeh,如何使用 CustomJS 回调更改用于字形颜色的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41147984/

25 4 0
文章推荐: Android-如何在矢量图上实现中心比例动画
文章推荐: java - 未指定模块?
文章推荐: javascript - 更改