Ich habe eine externe CSV-Datei mit Daten in Spalten wie folgt:.Wie Maximalwert aus einem Array von Objekten in d3.scale.linear() nutzen, um Domain()
name, field_goal_attempts, field_goal_makes
Ich versuche, eine lineare Skala zu verwenden, aber es fällt mir schwer, den Maximalwert für meine Domain zu bekommen.
var yScale = d3.scale.linear()
.domain(0, d3.max(...
Ich bin verwirrt,:
1) Ob ich außerhalb der yScale Funktion oder innerhalb der
d3.csv("filename.csv", function(data) {
Callback-Funktion setzen sollte; und
2) So erhalten Sie den maximalen Wert der Elemente in der Spalte field_goal_attempts, um dann in die yScale-Funktion einzufügen.
Hier ist mein Code derzeit:
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
});
});
Danke für die Hilfe. Dies ist meine erste Frage und ich bin dankbar für die Hilfe und die freundliche Art und Weise, in der es geliefert wurde. Ich habe deine Antwort über Christopher Chiches angenommen, weil es sich "mehr d3" angefühlt hat, weil ich keine Schleife brauchte. Ich habe Ihre zweite Lösung implementiert, musste aber zwei Änderungen vornehmen, um es zum Laufen zu bringen, nämlich '+' vor d.field_goal_attempts zu verwenden, so dass max 2000 und nicht 600 zurückgegeben wurde und Werte in domain() in eckigen Klammern eingeschlossen wurden. Ich bin neu, also möchte ich deinen Code nicht ändern, falls ich falsch liege, aber dachte, es wäre gut, es dir zu sagen :). Danke noch einmal! – Emil
Ja, Sie benötigen das '+' vor field_goal_attempts, wenn der Wert als String gespeichert ist. Und Sie haben absolut recht mit dem Argument, dass Domäne ein Array ist! Ich werde die Änderungen vornehmen. Froh, dass ich helfen konnte! – Superboggly
Wow, nicht hinzufügen, dass + am Anfang gab mir so viele Probleme, Sie sind ein Lebensretter @Superboggly! –