Punkte auf der Linie in d3.js

Ich bin erstellen Sie ein Liniendiagramm, in d3.js wie diese:

var line = d3.svg.line()
    .interpolate("basis")
    .x(function(d) { return x(d.date); })
    .y(function(d) { return y(d.temperature); });

Dann möchte ich setzen Punkte auf der Linie Daten-Punkte wie diese:

var points = svg.selectAll(".point")
        .data(cities1[0].values)
      .enter().append("svg:circle")
         .attr("stroke", "black")
         .attr("fill", function(d, i) { return "black" })
         .attr("cx", function(d, i) { return x(d.date) })
         .attr("cy", function(d, i) { return y(d.temperature) })
         .attr("r", function(d, i) { return 3 });

Das Ergebnis ist nicht das, was ich erwarte:

Punkte auf der Linie in d3.js

Ich dann ändern interpolieren("basis") zu interpolieren("Kardinal") und bekommen, was ich will:

Punkte auf der Linie in d3.js

Warum hab ich das falsche Ergebnis mit basis? Wie kann ich zeichnen Sie die genaue Punkte mit Grundlage auch?

EDIT: Eine ähnliche (unbeantwortete) Frage. Check-out dieses jsfiddle. Es wird nur funktionieren, wenn Sie das interpolieren von der basis zum Kardinal (oder andere) - Modus. Aber Kardinal hat ein problem, dass es nicht an die maximale Höhe des Diagramms. Was ich Suche ist eine Erklärung, warum einige Interpolations-Modus zu verhindern, wenn die Punkte an der richtigen Stelle (und warum Kardinal nicht respektieren max Höhe).

Ich sehe zwei Achsen, eine Links, eine rechts. Vielleicht die Punkte gezeichnet wurden, gegen die falsche Achse? Oder nicht neu gezeichnet, nachdem die Skalierung erfolgt war. Schwer zu sagen ohne den vollständigen code.
siehe edit mit mehr Daten
Ich habe das gleiche problem. Siehe meine Frage hier: stackoverflow.com/questions/16491180/... muss Es möglich sein, die Berechnung der Kontrollpunkte für die "basis" - interpolation, so dass die Linie geht durch alle Ihre Punkte. Wenn man sich hier stackoverflow.com/questions/9710616/... , Sie werden sehen, wie dies für Kurven generiert HTML 5 quadraticCurveTo. Die Formel für D3 "basis" der Kurven ist anders aber so ist die Lösung gegeben, es wird nicht funktionieren.
Also, wenn jemand in der Lage ist zu helfen, mit der Mathematik zu tun, die Berechnung der Kontrollpunkte für die D3 basis interpolieren muss, dann muss es möglich sein, diese zu lösen.
Fragen und Antworten nützlich sein können.

InformationsquelleAutor Yaron Naveh | 2012-12-26

Schreibe einen Kommentar