2013-12-17 12 views
11

Probleme beim Formatieren der X-Achse dieses Zeitreihendiagramms mit d3 js.d3 Zeitskala x Achse mit Unix-Zeitstempel

Hier ist ein funktionierendes Beispiel: http://tributary.io/inlet/7798421

Das Problem: Ich kann nur 1 Tag sieht (Etikett) auf meiner x-Achse, unabhängig von Gesamtanzahl der Ticks. Wie kann ich die Zeit auf der x-Achse mit 4-6 Ticks anzeigen?

EDIT: Lösung unten dank Lars.

Hier ist meine Zeit in UTC:

var data = [ 
    {"time": 1387212120, "open": 368, "close": 275, "high": 380, "low": 158}, 
    {"time": 1387212130, "open": 330, "close": 350, "high": 389, "low": 310}, 
    {"time": 1387212140, "open": 213, "close": 253, "high": 289, "low": 213}]; 

data.forEach(function(d){ d.time = new Date(d.time * 1000) }); 

Und dann d3 es akzeptieren, in Standardformat, oder können Sie anpassen.

Antwort

24

Das Problem ist, dass Javascript Date Objekte (in denen Sie implizit konvertieren Ihre Zeitstempel) sind keine Zeitstempel in Sekunden, sondern in Millisekunden. Wenn Sie alle Ihre Zeitwerte mit 1000 multiplizieren, funktioniert es.

Komplettes Beispiel here. Ich habe auch die Umwandlung in Date s explizit gemacht.

+0

Ausgezeichnet, erste Erfahrung mit Zeit als X-Achse, erstaunlich kurze und einfache Lösung, um es zum Laufen zu bringen. Vielen Dank. – DeBraid

+0

Sehr hilfreich und elegant, danke. –

Verwandte Themen