1

PHP を使用して mySQL データベースから 5 秒間隔でデータを取得して、d3 複数線グラフを更新しようとしています。現在、グラフは表示されていますが、更新されていません。 updateData 関数に問題があることはわかっていますが、考えられるすべてのことを試してみましたが、何も機能していないようです。誰でも助けてもらえますか?

https://gist.github.com/Majella/ab32fe0151fd487da3f6

更新

ご覧のとおり、x 軸の線は散発的にしか表示されておらず、一部の線は y 軸に沿っていません。

更新された要点:

https://gist.github.com/Majella/ab32fe0151fd487da3f6

ここに画像の説明を入力 更新 2 : いくつかの奇妙な理由で、線の色が変わっているか、完全に動いているかどうかは正確にはわかりません。したがって、グラフの上の線は上から - 青、オレンジ、次に白 - グラフを更新すると、青が上にオレンジ、中央に白などで下に移動する可能性がありますが、ランダムに発生しますか?

4

1 に答える 1

3

グラフの元の描画では、次を正しく使用します。

var parameter = svg.selectAll(".parameter")
.data(data, function(d) { return d.key; })
    .enter().append("g")
    .attr("class", "parameter");

データ(データ)を要素(g.parameter)に結合します

更新機能中に、要素の更新、削除、および追加を実行するために、データを再度結合する必要があります。3 つの小さな円のチュートリアルは、これについて詳しく学ぶのに最適な場所です。

とにかく、更新機能では、次のようなものが必要になる場合があります(テストされていません):

// re-acquire joined data
var containers = svg.selectAll("g.parameter")
    .data( data );

// update existing elements for this data
containers
    .select( "path.line" ) 
    .attr( "d", function(d) { return line(d.values); })
于 2013-03-01T16:31:11.960 に答える