Soy nuevo en D3 y juego con un diagrama de dispersión. No puedo hacer que d3.max (datos) funcione correctamente al configurar el dominio.¿Por qué el dominio no usa d3.max (datos) en D3?
que tienen la siguiente configuración de un conjunto de datos al azar:
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()});
}
Y entonces lo siguiente para configurar mis coordenadas:
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);
Esto pone a los 40 puntos en una sola línea, horizontal. Si reemplazo d3.max (datos) con '5', entonces es una diagonal (aunque desde la parte superior izquierda hacia la parte inferior derecha, todavía estoy luchando para voltear las coordenadas y). ¿Por qué no está funcionando el d3.max (datos) como se esperaba?
No necesita jQuery para el mapa; es un método Array nativo: 'd3.max (data.map (function (d) {return d.y;}))'. 'd3.max()' toma un descriptor de acceso opcional como segundo argumento, por lo que también puede hacer 'd3.max (data, function (d) {return d.y;})' –