Ho qualche problema con D3 e sto colpendo la mia testa di spirito. Essenzialmente ho un grafico di serie temporali con molte linee arbitrarie e i dati di origine non possono essere modificati per comodità prima della mano (ma possono essere manipolati lato client).Grafico a linee D3 con arbitrariamente molte linee (e uno specifico formato di dati)
I dati sono formattati questa convenzione (con un numero arbitrario di etichette):
object = [
{
"_id": "2012-08-01T05:00:00",
"value": {
"label1": 1.1208746110529344,
"label2": 0.00977592175310571
}
},
{
"_id": "2012-08-15T05:00:00",
"value": {
"label1": 0.7218920737863477,
"label2": 0.6250727456677252
},
....
ho provato qualcosa di simile:
var vis = d3.select.(element)
.append("svg:svg")
.attr("width", width)
.attr("height", height)
.append("svg:g");
var line = d3.svg.line()
.x(function(data) {return x(new Date(data._id));})
.y(function(data) {return y(data.value);});
vis.append("svg:path")
.attr("d", line(object))
.attr("stroke", "black");
che sembra in grado di accedere al valore corretto tramite il y di accesso come Ricevo un "errore: analisi dei problemi" e un sacco di "NaNL3.384615384615385, NaNL6.76923076923077, NaNL10.153846153846155". Tuttavia se ho hardcode il valore dell'etichetta tramite qualcosa del tipo:
.y(function(data) {return y(data.value.label1);});
Funziona bene, ma solo per una linea. Qualcuno potrebbe offrire aiuto?
Esattamente ciò di cui avevo bisogno, grazie! – jshwlkr