Bokeh CustomJS 传递字形数组
Bokeh CustomJS Passing Array of Glyphs
我正在尝试创建多个数字来传播有关国家/地区的各种信息。最重要的是,我正在尝试使用一组按钮来隐藏所有数字中的国家/地区图。使用 CustomJS 回调时,我试图将 ColumnDataSource 与各个国家作为列传递,并在列中包含相应的字形。 ColumnDataSource 如下所示:
{'index': array([0, 1], dtype=int64), 'US':
array([GlyphRenderer(id='1038', ...), GlyphRenderer(id='1157', ...)],
dtype=object), 'United Arab Emirates': array([nan, nan]), 'United
Kingdom': array([GlyphRenderer(id='1079', ...),
GlyphRenderer(id='1198', ...)]}
然后我尝试像下面这样传递到 CustomJS 中:
callback = CustomJS(args={'source':source}, code="""..."""
但是,google chrome 中的控制台显示以下错误。我很难理解它是否不可迭代,因为我在每一列中都有对象,或者因为列是字符串?
Uncaught (in promise) TypeError: (intermediate value)(intermediate value)(intermediate value) is not iterable
当我直接传递一个列时,它按我预期的那样工作。但是,我正在尝试放入许多国家。
callback = CustomJS(args={'source':source.data['US']}, code="""..."""
非常感谢,
托马斯
正如评论中指出的那样,我本可以通过字典。显然是正确的,我通过传递 ColumnDataSource 过度思考了这个问题。
问题已通过遍历所有字形解决,如下例所示,使所有字形不可见。
callback = CustomJS(args={'source':one_line, 'countries': all_countries}, code="""
var arr_glyphs = source;
var arr_countries = countries;
var index;
var index_country;
for (index = 0; index < arr_countries.length; ++index) {
for (index_country = 0; index_country < arr_countries[index].length; ++index_country) {
arr_glyphs[arr_countries[index]][index_country].visible = false;
};
};""")
感谢您的帮助!
我正在尝试创建多个数字来传播有关国家/地区的各种信息。最重要的是,我正在尝试使用一组按钮来隐藏所有数字中的国家/地区图。使用 CustomJS 回调时,我试图将 ColumnDataSource 与各个国家作为列传递,并在列中包含相应的字形。 ColumnDataSource 如下所示:
{'index': array([0, 1], dtype=int64), 'US': array([GlyphRenderer(id='1038', ...), GlyphRenderer(id='1157', ...)], dtype=object), 'United Arab Emirates': array([nan, nan]), 'United Kingdom': array([GlyphRenderer(id='1079', ...), GlyphRenderer(id='1198', ...)]}
然后我尝试像下面这样传递到 CustomJS 中:
callback = CustomJS(args={'source':source}, code="""..."""
但是,google chrome 中的控制台显示以下错误。我很难理解它是否不可迭代,因为我在每一列中都有对象,或者因为列是字符串?
Uncaught (in promise) TypeError: (intermediate value)(intermediate value)(intermediate value) is not iterable
当我直接传递一个列时,它按我预期的那样工作。但是,我正在尝试放入许多国家。
callback = CustomJS(args={'source':source.data['US']}, code="""..."""
非常感谢, 托马斯
正如评论中指出的那样,我本可以通过字典。显然是正确的,我通过传递 ColumnDataSource 过度思考了这个问题。
问题已通过遍历所有字形解决,如下例所示,使所有字形不可见。
callback = CustomJS(args={'source':one_line, 'countries': all_countries}, code="""
var arr_glyphs = source;
var arr_countries = countries;
var index;
var index_country;
for (index = 0; index < arr_countries.length; ++index) {
for (index_country = 0; index_country < arr_countries[index].length; ++index_country) {
arr_glyphs[arr_countries[index]][index_country].visible = false;
};
};""")
感谢您的帮助!