2017-03-27 3 views
0

Ich erstelle ein d3 Liniendiagramm, aber meine XScale gibt Nan zurück.d3 Xscale gibt Nan selbst bei richtiger Skalierung zurück

Meine Linien sind in absteigender Reihenfolge des Zeitstempels I x Domain setzte als:

var lastIndex = line_data[0].length -1; 
var minDate = line_data[0][0]['date']; 
var maxDate = line_data[0][lastIndex]['date']; 
x.domain([minDate,maxDate]); 

später Ich versuche es so zuzugreifen:

.x(function(d) { console.log('d for x is',d.date); 
    console.log(x(d.date)); 
    return x(d.date); }) 

Warum Rückkehr es nan ist?

Hier ist meine Geige https://jsfiddle.net/james222/yw3Le6yb/

+0

Ich kann diese Frage nicht bearbeiten, weil die vorgeschlagene Bearbeitungswarteschlange voll ist. Deine Geige macht deutlich, dass du Streicher statt Daten verwendest. 'abc [i] ['date'] = Parser (dateLabel);' bei Zeile 100 konvertiert das Datum in eine Zeichenfolge, aber Sie verwenden es weiterhin als Datum. Bitte fügen Sie diese Zeile in die ursprüngliche Frage ein. – chadnt

Antwort

1

Sie ein Datum in einen String konvertieren, wenn line_data bevölkern.

var parser = d3.time.format("%m/%d/%Y %H:%M:%S"); 
abc[i]['date'] = parser(dateLabel); 
line_data[counter] = abc; 

Verwenden Sie einfach das Datum hier.

abc[i]['date'] = dateLabel;