2012-12-03 14 views
8

Update: Hier ist ein Beispiel für die Ausgabe - http://jsfiddle.net/Hffks/2/D3 Linie als geschlossener Pfad wirkt

Ich versuche, D3 zu verwenden, um ein Liniendiagramm zu codieren und meine Linie am Ende wird geschlossen, durch die Ich meine, es handelt sich um einen geschlossenen Pfad, bei dem der erste und der letzte Punkt identisch sind. Meine Daten kommen in dem folgende JSON-Format:

[ entityA : [ { time : 1230000, // time since epoch 
      attribute1 : 123 // numeric value 
      attribute2 : 123 // numeric value 
      }, 
       { time : 1230010, // time since epoch 
       attribute1 : 123 // numeric value 
       attribute2 : 123 // numeric value 
      } ], 
    entityB : [ { ... // same format as above 
    ... 
] 

Ich verwende eine Standarderklärung einer Linie (d3.svg.line mit einer Funktion für x und y):

var line = d3.svg.line() 
     .x(function(d) { 
      return x_scale(d.c_date)); 
     }) 
     .y(function(d) { 
      return y_scale(d.total); 
     }); 

Dann innen eine for-Schleife, dass iteriert über die Entitäten ich bin anhängt „svg: Pfad“:

canvas.append("svg:path") 
      .attr("d", line(data[entity])) 

Alles andere über die grafische Darstellung Werke: die Punkte richtig platziert sind, habe ich mehrere unabhängige Zeilen pro Einheit haben, die Achsen gezeichnet, e tc. Jede unabhängige Linie wirkt jedoch als ein geschlossener Pfad.

Vielen Dank für Ihre Hilfe im Voraus!

+1

Es soll nicht den Weg auf seinem eigenen schließen. Können Sie ein kleines vollständiges Beispiel, z. um [jsfiddle] (http://jsfiddle.net/)? –

+0

Hier ist ziemlich viel, was ich getan habe: http://jsfiddle.net/Hffks/2/ – user1872632

+0

Es ist nicht wirklich einen geschlossenen Pfad zu erstellen, es ist nur das Ausfüllen standardmäßig. Wenn Sie fill und stroke explizit angeben, sehen Sie die einzelnen Zeilen. Ist das wonach Sie suchen? http://jsfiddle.net/Hffks/3/ –

Antwort

15

Pfade sind standardmäßig ausgefüllt. Wenn Sie fill auf "none" und stroke auf "black" setzen, sehen Sie, dass der Pfad nicht geschlossen ist, wie es aussieht.

Arbeits Geige: http://jsfiddle.net/Hffks/3/

+0

Vielen Dank @ lars-kotthoff Ihr Vorschlag war wirklich hilfreich. – Laxman

+0

Als Anfänger zu D3 und SVG-Rendering im Allgemeinen ist diese Art von Sache wirklich nicht offensichtlich haha. Ich bin froh, dass ich auf deine Lösung gestoßen bin. –