私は以下の指示に従っています:http://bost.ocks.org/mike/path/ 1本の線で単一のグラフを作成し、アニメーション化しました。d3.js - 複数行の変換と変換
とは、グラフに複数の行を作成する方法を考え出し:Drawing Multiple Lines in D3.js
主な問題:私は私のデータ配列に新しいデータで&プッシュをシフトした後、私は複数の行を移行に苦労していますが。
私はNと行作成します(時間:エポック時間は、前方ステップ)
var seriesData = [[{time:1335972631000, value:23}, {time:1335972631500, value:42},...],
[{time:1335972631000, value:45}, {time:1335972631500, value:13},...],
[{time:1335972631000, value:33}, {time:1335972631500, value:23},...}],
[...],[...],...
];
var seriesColors = ['red', 'green', 'blue',...];
line = d3.svg.line()
.interpolate(interpolation)
.x(function(d) { return x(d.time); })
.y(function(d) { return y(d.value); });
graphGroup.selectAll(".line")
.data(seriesData)
.enter().append("path")
.attr("class", "line")
.attr("d", line)
.style('stroke', function(d, i) { return seriesColors[i]; })
.style('stroke-width', 1)
.style('fill', 'none');
とJavaScriptのsetInterval(とN行を更新しようとしていますが... )メソッドを呼び出す:
graph.selectAll("path")
.data(seriesData)
.attr("transform", "translate(" + x(1) + ")")
.attr("d", line)
.transition()
.ease("linear")
.duration(transitionDelay)
.attr("transform", "translate(" + x(0) + ")");
それは完全に初期の描画ができますが、すぐに私が更新するデータ配列を食べれば、線は消えるだけです。
UPDATE 01
私はXのエポックタイム値を使用していますことに気づいた(X軸は日付を示しています。時間)私は上記の説明のseriesDataを使用した場合、私の例としては、おそらく動作します。
x(1)を使用して「変換」、「変換」していましたが、x(0)は大きな数字を返していました。私のグラフを移行する必要がありました。
I手動アプローチを使用する更新N線法(上記)修飾:
新しい問題を: すぐグラフの移動が正常に左が、ライン/グラフポップ右に戻って、各setInterval更新が実行されます。
seriesData配列を正しくプッシュ/シフトしますが、実際に描画されている新しいデータを表示するために左にスクロールしません。 http://bl.ocks.org/1148374
任意の考え:
graph.selectAll("path")
.data(seriesData)
.attr("d", line)
.attr("transform", null)
.transition()
.ease("linear")
.duration(2000)
.attr("transform", "translate(-200)");
私が使用しているもう一つの参照は、このですか?エラーの可能性として私に飛び出し
これは、x3とd3.scale.linear()の間にd3.time.scale()を使用していると考えています。 – August
これを解決しましたか?その場合は、ソリューションを投稿してください。 –
私は3つの別々のグラフを1つの行にそれぞれ作成しました。次に、CSSを使用してグラフIDを重ねます。管理して再利用する方が簡単でした。特に私はそれが滑らかにしたい場合.. – August