[英]Why does this D3 code not produce any output in Jupyter Notebook?
[英]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>
"""))
這是我在這個主題上可以找到的最相關的問題/答案。
我有一個解決方案:
基本上你需要使用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.