簡體   English   中英

D3 4.0+在導入Jupyter Notebook時不會創建全局d3變量

[英]D3 4.0+ does not create a global d3 variable when imported into Jupyter Notebook

以下將失敗並出現JavaScript ReferenceError

from IPython.display import HTML, display

display(HTML("""
<script src="https://d3js.org/d3.v4.js"></script>

<script>
console.log(d3);
</script>
"""))

這是為什么?

等效的D3版本3.x將起作用(雖然在第二次嘗試,對我來說):

from IPython.display import HTML, display

display(HTML("""
<script src="https://d3js.org/d3.v3.js"></script>

<script>
console.log(d3);
</script>
"""))

是我在這個主題上可以找到的最相關的問題/答案。

我有一個解決方案:

http://makeyourowntextminingtoolkit.blogspot.co.uk/2016/09/interactive-d3v4js-in-jupyter-notebook.html

基本上你需要使用require.js ..它已經可以通過筆記本電腦自己的基礎設施獲得。

事實證明這是由於d3自身出口方式的內部變化。 3.x分支版本的d3將其所有內部結構導出為全局變量( 源代碼 ); 4.x分支版本不再這樣做( 源代碼 )。 現在可以改為使用包管理器(例如require.js ),而是將導出管道傳送給它。

更多細節在必備的GitHub問題中

你應該做的事情現在是這樣的:

<script src="scripts/require.js"></script>
<script>var d3 = require('d3')</script>

在那之后,一切都應該按預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM