我是D3新手,玩弄散點圖。我無法讓d3.max(數據)在設置域時正常工作!爲什麼域名在D3中不使用d3.max(data)?
,我有以下設置一個隨機的數據集:
var data = [];
for (i=0; i < 40; i++){
data.push({"x": i/40, "y": i/8, "a": Math.floor(Math.random() * 3), "x2": Math.random()});
}
然後將下面的設置我的座標:
var x = d3.scale.linear().domain([0, 1]).range([0 + margin, w-margin]),
y = d3.scale.linear().domain([0, d3.max(data)]).range([0 + margin, h-margin]),
c = d3.scale.linear().domain([0, 3]).range(["hsl(100,50%,50%)", "rgb(350, 50%, 50%)"]).interpolate(d3.interpolateHsl);
這使得所有40個點在一個單一的,水平線。如果我用'5'代替d3.max(data),那麼它是一個對角線(儘管從左上角到右下角,我仍然在努力翻轉y座標)。爲什麼不是d3.max(數據)按預期工作?
你不需要jQuery的地圖;它是一個本地數組方法:'d3.max(data.map(function(d){return d.y;}))'。 'd3.max()'接受一個可選的訪問器作爲它的第二個參數,所以你也可以使用'd3.max(data,function(d){return d.y;}) – 2012-03-13 20:06:07