Ho un file CSV esterna con i dati in colonne in questo modo:.Come ottenere il massimo valore da un array di oggetti da utilizzare in d3.scale.linear() dominio()
name, field_goal_attempts, field_goal_makes
sto cercando usare una scala lineare ma sto incontrando difficoltà nel prendere il massimo valore per il mio dominio.
var yScale = d3.scale.linear()
.domain(0, d3.max(...
Sono confuso da:
1) Se devo mettere la funzione yScale all'esterno o all'interno della funzione
d3.csv("filename.csv", function(data) {
richiamata; e
2) Come ottenere il valore massimo degli elementi nella colonna field_goal_attempts per l'avanzamento nella funzione yScale.
Ecco il mio codice attuale:
var yScale = d3.scale.linear()
.domain([0, 4000]) //d3.max(data, function(d) {return d })])
.range([0, 500]);
d3.csv("test.csv", function (data) {
svg.selectAll("rect")
.data(data)
.enter()
.append("rect")
.attr("fill", "blue")
.attr("x", magic_number) // I'm not concerned about the magic numbers at this point :)
.attr("y", 0)
.attr("width", another_magic_number)
.attr("height", function (d) {
return d.field_goal_attempts
})
.attr("id", function (d, i) {
return i
});
});
Grazie per l'aiuto. Questa è la mia prima domanda e sono grato per l'aiuto e il modo amichevole con cui è stato consegnato. Ho accettato la tua risposta su Christopher Chiche perché sentiva "più d3" non richiedendo un loop. Ho implementato la tua seconda soluzione, ma ho dovuto fare due modifiche per farlo funzionare, ovvero usare '+' davanti a d.field_goal_attempts in modo che max restituisse 2000 e non 600, e di racchiudere i valori in domain() tra parentesi quadre. Sono nuovo quindi non voglio cambiare il tuo codice in caso mi sbagli, ma ho pensato che sarebbe stato bello dirti :). Grazie ancora! – Emil
Sì, è necessario il '+' davanti a field_goal_attempts se il valore è memorizzato come stringa. E hai assolutamente ragione sull'argomento del dominio come array! Farò le modifiche. Felice di poterti aiutare! – Superboggly
Wow non aggiungendo che + all'inizio mi dava così tanti problemi, sei un risparmiatore di vita @Superboggly! –