由于BokehJS相对较新,因此我很难找到一个工作示例来展示Customoke在BokehJS中的用法。我希望事情与在python中使用CustomJS有所不同,因为当在python中使用CustomJS时,应该有可能直接提供javascript函数作为BokehJS中CustomJS的参数,而不是javascript代码段。

在没有任何更多信息的情况下,我的最佳猜测是以下代码,该代码打算在平移或缩放用户操作时对其进行更新时在控制台中打印x轴的下限,并且它不起作用。

谁能纠正这个问题并在BokehJS中显示CustomJS的正确用法?

编辑:使用Github提供的解决方案更新示例。谢谢!

<html>
<head>
    <link rel="stylesheet" href="https://cdn.bokeh.org/bokeh/release/bokeh-0.12.10.css" type="text/css" />
    <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-0.12.10.js"></script>
    <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-api-0.12.10.js"></script>
    <!-- The order of CSS and JS imports above is important. -->

</head>
<body>
    <div id="myPlot">
    </div>
    <script type="text/javascript">
    // data to plot
    var source = new Bokeh.ColumnDataSource({
        data: { x: [0,1,2,3,4,5,6,7,8,9], y: [0,1,4,-2,2,5,0,2,1,1] }
    });

    // make the plot and add some tools
    var tools = "pan,crosshair,wheel_zoom,box_zoom,reset,save";

    var plot = Bokeh.Plotting.figure({
        title:"demo plot",
        tools: tools,
        toolbar_location:"above",
        sizing_mode:"stretch_both"
    });

    var scatterData = plot.line({ field: "x" }, { field: "y" }, {
        source: source,
        line_width: 2
    });

    plot.x_range.callback=new Bokeh.CustomJS({args:{plot:plot},code:"console.log(plot.x_range.start);"});

    // Show the plot, appending it to the end of the current
    // section of the document we are in.
    Bokeh.Plotting.show(plot,document.getElementById("myPlot"));
    </script>
</body>
</html>

最佳答案

问题在这里讨论:
https://github.com/bokeh/bokeh/issues/7130

问题中已编辑的代码中显示的当前正确用法。

从Bokeh 0.12.11开始,还可以将范围回调直接定义为javascript函数:

plot.x_range.callback=function(){console.log(plot.x_range.start);};

关于javascript - 如何在BokehJS中使用CustomJS?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46975752/

10-13 00:18