まず、ドメインの下限と上限を、データセットから計算された動的な値に設定します。構造またはデータに応じて、d3には、値の配列内の最大/最小値を計算するメソッドがありますmax
。min
var x = d3.scale.linear().domain([d3.min(data), d3.max(data)]).range([0,w]);
データを更新する方法がある場合は、機能を追加して再定義し(関数の全範囲でアクセスできるある種の名前空間x
にアタッチしたい場合があります)、ラインジェネレーターを呼び出します(を介して)。x
d3.svg.line()
アップデート
あなたのコメントを見て、はっきりさせておきます。
d3は非常に低レベルのライブラリであるため、これを行うにはいくつかの異なる方法があります(個人的には魅力の一部だと思います)。私自身の仕事では、他の種類のグラフ(棒グラフなど)で使用されている一般的なEnter、Update、Exitモデルを便利に使用できる複数のシリーズを使用しています。しかし、最も基本的な用語では、必要なものは次のとおりです。
- 最初にいくつかのオブジェクトを設定する必要があります。
- SVGコンテナ
- xとyのスケール
- データにバインドされていないラインジェネレータ
- 次に、そのラインジェネレーターを使用し
SVG:path
て、データセットで要素を初期化します
- 次に、要素を更新する手段を作成し、
SVG:path
新しいデータでスケーリングする必要があります
これを示すjsfiddleは、10秒間、毎秒新しいランダムデータを追加します。