-1
我無法找到下面的代碼D3的缺陷:將數據傳遞到D3的功能
//d3.tsv("dictionaries/dictionary-tsv.tsv",
// function(d) { return +d.frequency },
// function(error, rows) { console.log(rows);},
// function(d) { drawExample(data) }
// );
var data = [1,2,12,4,7];
drawExample(data);
function drawExample(frequency) {
var x = d3.scale.linear()
.domain([0, d3.max(frequency)])
.range([0, 420]);
d3.select(".chart")
.selectAll("div")
.data(frequency)
.enter().append("div")
.style("width", function(d) { return x(d) + "px"; })
.text(function(d) { return d; });
}
如果你運行,因爲它是條形圖產生。如果您評論var data和drawExample並取消註釋從tsv獲取外部數據的方法,則它會失敗(Firefox調試器顯示數據已加載,並且沒有未定義的var顯示在任何地方)。另外,計算器鏈接:
「csv to array in d3.js」 和 「variable scope in d3 javascript」
似乎並沒有幫助。我使用d3.v3.min.js和我的TSV文件如下:
word frequency
and 1
be 2
art 12
break 4
cat 7
我相信,這是我的錯誤,因此任何幫助,將不勝感激!
但是,我打電話在回調drawExample(數據),就像你說的,不是嗎? – pebox11 2014-09-27 20:54:11
不,你在'var data = d3.tsv'(你的代碼剛剛更改)中將d3.tsv的結果賦值給var數據,然後在回調函數中傳入'd',但是使用'data'。 – topheman 2014-09-27 21:05:18
是的那部分「var data = d3.tsv」確實發生了變化,但是當我改變它時沒有人回答。無論如何,我現在正在提及發佈的具體問題。對不起,但我做了你的建議,它不起作用。 – pebox11 2014-09-27 21:10:19