我最近一直在嘗試重新創建 Mike Bostock 的堆疊圖表,他在此處的 Observable 筆記本中呈現了他的形式:
https://observablehq.com/@mbostock/most-popular-operating-systems-2003-2020
當我插入資料時,代碼實際上在筆記本中作業,但是當我在本地環境中運行它時似乎崩潰了。我不是將 Observable 筆記本代碼轉換為 HTML/JS 的大師,但通常我可以在經過反復試驗后將其完成。這似乎正在躲避我。當我運行此代碼時:
function _series(d3,data){return(
d3.stack()
.keys(d3.group(data, d => d.Article).keys())
.value(([, values], name) => values.get(name) || 0)
(d3.rollup(data, ([d]) => d.stock, d => d.date, d => d.Article))
)}
該函式回傳一個只有單個輸入的陣列陣列,而在原始筆記本中,它實際上回傳一個陣列陣列,其中包含各個專案的各個日期的值。
所以我的問題是我實際上并不了解這段代碼中發生了什么。為什么在呼叫值后括號中有單獨的 d3.rollup?值實際上是用兩個不同括號中的兩組引數呼叫的嗎?我的 JavaScript 很糟糕,而且我不是很熟悉。
它在筆記本中作業但不在筆記本之外的事實可能與幕后 Observable 中發生的事情有關嗎?如何更改代碼以便它可以在 Observable 之外運行?
非常感謝,
皇家空軍
uj5u.com熱心網友回復:
我一直在加載看起來與筆記本中幾乎完全一樣的資料,但“日期”是 astring而不是 a datetime。我沒有注意到筆記本中有一個單獨的單元格處理日期。
無論如何,在我決議日期后一切正常。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/494551.html
標籤:javascript d3.js 可观察的
