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

Display d3.js visualisation in Jupyter Lab

我想在 Jupyter Lab/JupyterLab 中显示 d3.js 可视化。我一直在关注各种网络教程,例如 this one,这些教程通常以

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

这在 Jupyter Notebook 中有效,但在 Jupyter Lab 中我得到:

Javascript Error: require is not defined

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

此功能由 Jupyter Lab javascript 扩展添加(默认安装)。你可以看到一个演示笔记本 here.

相关位如下。要添加 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)

然后以下应该起作用:

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)