Ich bin relativ neu zu D3, und ich kann nicht herausfinden, warum etwas nicht funktioniert .. Ich möchte ein Liniendiagramm mit d3 zeichnen, und das funktioniert gut, aber ich habe Probleme mit den Achsen.d3 linchart string domain x-achse
Mit dem folgenden Code geht es irgendwo falsch, und ich sehe nicht, wie zu lösen ...
var x = d3.scale.linear()
.range([0, width]);
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom");
x.domain(d3.extent(data, function(d) { return d.age; }));
wenn d.age eine ganze Zahl (wie 1, 2, 3 usw.), es funktioniert Gut. Aber ich möchte Strings auf der X-Achse. wie ("Niederlande", "England", "Belgien").
Wenn also d.age eine Ganzzahl ist, zeichnet es die Grafik in Ordnung, wenn d.age eine Zeichenkette ist, zeichnet es nichts.
Ich versuchte auch anstelle von linear, Ordnungszahl zu verwenden, aber das gab eine falsche Tabelle. (komisch aussehende Linien ...).
Hoffe jemand kann mir helfen.
Thanx für Sie Reaktion, ich wusste, dass ich eine Ordinalskala brauchte, aber das gab eine so seltsame Diagramm .. (Looping Linien usw.). Aber ich habe Range anstelle von RangeRoundBands verwendet. Das hat das Problem gelöst (jetzt habe ich nur ein kleines Problem damit, dass die Punkte und die Xaxis nicht auf der gleichen Ebene sind. (Es ist eine Verschiebung sichtbar)). –
Ich frage mich, warum RangeRoundBands anstelle von RangeBands verwenden? Es scheint, als würde es Antialiasing-Artefakte vermeiden, aber nicht sicher, ob es einen anderen Grund gab, warum du es benutzt hast. Vielen Dank. – yoyodunno
Das ist der einzige Grund. –