Я новичок в D3 и играю с рассеянным экраном. Я не могу заставить d3.max (данные) работать правильно при настройке домена!Почему домен не использует d3.max (данные) в D3?
У меня есть следующие настройки случайного набора данных:
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 точек в одной горизонтальной линии. Если я заменил d3.max (данные) на «5», то это диагональ (хотя и с верхнего левого угла вправо справа, я все еще пытаюсь перевернуть y-координаты). Почему d3.max (данные) работают как ожидалось?
Для карты вам не нужен jQuery; это собственный метод Array: 'd3.max (data.map (function (d) {return d.y;})). 'd3.max()' принимает дополнительный аксессор в качестве второго аргумента, так что вы также можете сделать 'd3.max (data, function (d) {return d.y;})' –