问题标签 [bokehjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - BokehJS + React:“找不到模块:无法解析‘core/bokeh_events’”
我已经在 create-react-application 中安装了 BokehJs (0.13.0) 作为依赖项。它似乎安装得很好,但是一旦我尝试将它引入组件中,我就会收到以下错误消息:
Module not found: Can't resolve 'core/bokeh_events' in '/Users/myComputer/me/myProject/rootFolder/node_modules/bokehjs/build/js/tree'
版本控制回早期版本似乎没有帮助,或者改变我收到的错误消息。文件 core/bokeh_events 看起来应该是节点模块中的位置,所以我无法理解是什么阻止了它的解决。
提前非常感谢!
javascript - 如何在 Python 中更新散景的 JavaScript 回调中的源?
我正在为我的案例调整这个答案,我想要一个交互式的独立图表,其中滑块选择要在条形图中绘制的数据列。(独立是至关重要的,我无法运行 Bokeh 服务器,因此需要JavaScript 回调。)
数据是一个浮点矩形,38 列中的每一列都有 100 行,它们都有字符串标签等'40'
。(这是 pandas.read_csv()
默认处理标题中的数字的方式。)这是左上角的示例(3x3 ,加上行和列标签):
下面的代码为第一列生成图表,但在移动滑块时不会更新图表。
通过戳它,我怀疑问题出在 JavaScript 代码上,尽管ColumnDataSource对我来说仍然有点神秘。(一个更直接的数字列标签字典到列中的数字列表不起作用datasource_available
,尽管对应于链接答案的用例。)
visualization - 如何使用从一个图中选择的数据的索引,在另一个图中绘制一些东西?
我在一个数字上有一个散点图。我希望能够在提到的散点图上选择可能的多个数据点,并根据所选数据的索引在另一个图上绘制(可能)多线时间序列图。
伪代码:
因此,如果[1,1]
在图 1 上选择了数据点(索引 0),则[1,2,3]
在图 2 上绘制时间序列(索引 0)。如果选择了多个点,则绘制多个时间序列。
一个限制是 HoloViews 库不能使用,因为它不支持我的平台。
如何做到这一点?
javascript - Bokeh JS 回调根据从另一个表中的选择来选择表行
我有两个散景表,我想单击第一个表中的表记录,然后根据字段中的匹配值选择第二个表中的行。创建了一个 js 回调脚本来:
创建一个空列表以保存 table2 中的索引,这些索引与表 1 中收集的记录匹配到表 1 的选定索引
循环表 1 中的索引并收集值以与表 2 进行比较,循环表 2 并在表 id 匹配时附加索引。
当我运行脚本并在表格上选择时,什么都没有发生。
来自控制台窗口的错误
bokeh - 渲染器不更新 bokehjs 中绘图上的字形
更新25-09-2018
为了为这个问题创建一个更简单的演示(发布在这里:http: //jsfiddle.net/bLgj4vc7/3/),我终于发现了问题的根本原因。我也设法解决了这个问题,我已将其发布为答案。
我在我的 web 应用程序中使用独立的 bokehjs。我的问题是渲染器没有用更新的数据源更新它的行字形(或者至少这对我来说是这样的问题)。
这个 jsfiddle: http: //jsfiddle.net/uwnqcotg/8/演示了这个问题。请忽略其中的任何不良编码约定;这是一个快速的一次性演示。
在小提琴中,情节加载了一个数据系列,渲染得很好。该图可以通过两种方式更新:
Update Plot Once By Overwriting CDS.data Object
一次性覆盖 ColumnDataSource.data 对象,从而遵循保持相同列长度的散景原则。Start Stream With CDS.stream
使用 ColumnDataSource.stream() 并使用随机生成的增量数据序列定期更新绘图。
在第一种方法中,字形看起来正在更新 - 轴肯定会根据控制台中打印的数据序列进行更新以供参考。但是,绘制的字形和数据系列显示不匹配。对我来说,它看起来像初始化绘图时绘制的字形只是重新调整到新轴,尽管我不能确定。
在第二种方法中,轴再次更新,但字形没有。同样,最初绘制的字形似乎重新调整到新的轴范围。此外,rollover
由于渲染器只是不断累积数据,因此似乎忽略了 attr。
总的来说,我的观察是,在初始化期间提供给渲染器的任何数据都被正确绘制,但任何后续的流式更新甚至覆盖都没有。虽然我可能在这里错了。
另一方面,在我和散景之间,我倾向于相信我做错了什么或错过了什么。那是什么?
python-3.x - 如何在散景中标记多个 BoxSelectTool?
我正在尝试运行对象检测标记代码。因此,对于不同的对象,我定义了一个单独的框选择工具。所以它们都显示在图片的顶部,但你们都有一个悬停标签“框选择”。如何将该标签更改为类别名称?
python - Bokeh 属性更新不会在不从 curdoc 中删除模型的情况下更新模型
下面的代码是散景模型在通过回调设置属性时不更新的问题的最小示例。我发现从 curdoc 的布局中删除和添加模型对象(甚至不是可疑对象)会强制它刷新。我已经通过第一次按下按钮展示了这一点。
有没有更优雅的方法来强制散景重绘图形?
该示例适用于 DataTable.columns.formatter,但我注意到这也适用于其他模型属性(包括轴范围,我已经看到了一种解决方法,涉及在图形创建时明确设置范围以允许更新)。
python - 无法在 Bokeh python 中更新数据源
我正在使用散景 1.0.1。我无法在Update方法中更新数据源,即src.data.update(new_src.data)
似乎不起作用。下面是完整的代码。