在 Jupyter Lab 中显示 d3.js 可视化

Rob*_*inL 5 jupyter-lab

我想在 Jupyter Lab/JupyterLab 中显示 d3.js 可视化。我一直在关注像这个经常开始的各种网络教程

%%javascript
require.config({
    paths: {
        d3: 'https://d3js.org/d3.v5.min'
    }
});

Run Code Online (Sandbox Code Playgroud)

这适用于 Jupyter Notebook,但在 Jupyter Lab 中我得到:

Javascript Error: require is not defined
Run Code Online (Sandbox Code Playgroud)

如何在 Jupyter Lab 中显示 d3.js 可视化?

Rob*_*inL 5

此功能是由 Jupyter Lab javascript 扩展(默认安装)添加的。您可以在此处查看演示笔记本。

相关位如下。要添加d3.js您需要:

%%javascript
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = '//cdnjs.cloudflare.com/ajax/libs/d3/4.13.0/d3.js';
    document.head.appendChild(script);
    console.log(window.d3)
Run Code Online (Sandbox Code Playgroud)

然后以下应该工作:

from IPython.display import Javascript
svg_script = '''
var svg = d3.select(element)
    .append("svg")
    .attr("width", 300)
    .attr("height", 300);    

svg.append("circle")
    .style("stroke", "gray")
    .style("fill", "cyan")
    .attr("r", 130)
    .attr("cx", 150)
    .attr("cy", 150)
    .transition()
        .delay(100)
        .duration(10000)  
        .attr("r", 10)
        .attr("cx", 150)
        .style("fill", "blue"); 
'''

Javascript(svg_script)
Run Code Online (Sandbox Code Playgroud)