Sono nuovo di D3 e sto giocando con un grafico a dispersione. Non riesco a far sì che d3.max (data) funzioni correttamente nell'impostazione del dominio!Perché il dominio non utilizza d3.max (dati) in D3?
Ho la seguente creazione di un set di dati casuali:
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()});
}
E poi la seguente per impostare le mie coordinate:
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);
Questo mette tutti i 40 punti in una sola riga, orizzontale. Se sostituisco d3.max (data) con '5', allora è una diagonale (anche se in alto a sinistra in basso a destra, sto ancora lottando per capovolgere le coordinate y). Perché d3.max (dati) non funziona come previsto?
Non è necessario jQuery per la mappa; è un metodo array nativo: 'd3.max (data.map (function (d) {return d.y;}))'. 'd3.max()' accetta un accessor opzionale come secondo argomento, quindi potresti anche fare 'd3.max (data, function (d) {return d.y;})' –