Sono relativamente nuovo a D3, e non riesco a capire perché qualcosa non funziona .. Voglio disegnare un grafico a linee con d3, e questo funziona bene, ma ho problemi con gli assi.d3 linechart string dominio asse x
Con questo codice le cose vanno male da qualche parte e non vedo come risolvere ...
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; }));
se R.età è un numero intero (come 1; 2; 3, ecc), funziona bene. Ma voglio stringhe sull'asse x. come ("netherlands", "Inghilterra", "Belgio").
Quindi se d.age è un numero intero disegna il grafico ok, se d.age è una stringa non disegna nulla.
Ho anche provato invece di usare l'ordinale, ma questo ha dato un grafico errato. (strane linee di sguardo ...).
Spero che qualcuno possa darmi una mano.
Grazie per voi la reazione, sapevo che avevo bisogno di una scala ordinale, ma questo ha dato un grafico così strana .. (looping linee, ecc). Ma ho usato la gamma invece di rangeRoundBands. Quindi questo ha risolto il problema, (ora ho solo un piccolo problema che i punti e gli xax non sono sullo stesso livello. (C'è qualche spostamento visibile)). –
Mi chiedevo perché usare rangeRoundBands invece di rangeBands? Sembra che eviti gli artefatti di antialiasing, ma non è sicuro che ci fosse un altro motivo per usarlo. Grazie. – yoyodunno
Questa è l'unica ragione. –