私は d3 に慣れていますが、トランジション/アニメーションを理解し始めたばかりです。私は、M Bostock の列車用マレー チャートをベースとして、ムンバイ西部鉄道システム用のインタラクティブなチャートを作成しようとしています。ブロックスのページはこちら。路線のヒント テキストの追加、ゾーンごとの駅名の色分けなど、わずかな変更を加えました。
ムンバイ西部鉄道システムには、高速列車と低速列車があります。要件は、ユーザー入力に基づいて、チャートがすべての列車または高速のみを表示することです。快速は黒色。csv の「タイプ」列は、列車が速い (F) か遅い (S) かを示します。
移行フレームワークに対応する最善の方法を考えることができません。これまでのところ、次のオプションを考えていました。
2 つの個別の csv ファイルがあります (1 つはすべてのファイル用、もう 1 つは高速用のみ)。d3.csv 関数の外側に「クリック時」リスナーを配置し、選択時に適切な d3.csv ローダーを呼び出します。これはおそらく粗雑で、それほどエレガントではありません
ここには、SF 列車のみを選択するフィルターが既にあります。しかし、クリックリスナーに応じて、Sのみまたは両方のSFを組み込むにはどうすればよいですか。
var train = svg.append("g") .attr("class", "train") .attr("clip-path", "url(#clip)") .selectAll("g") .data(trains.filter(function(d) { return /[SF]/.test(d.type); })) //.data(trains) .enter().append("g") .attr("class", function(d) { return d.type; });
この移行を組み込むための適切でエレガントな方法を手伝ってくれる人がいれば感謝します
編集: 今のところ、SVG コンテナーの外にフォーム ラジオ ボタンを含めて、SVG コンテナーの下部の X 軸を押し出していることを知っています。トランジションの部分がカバーされたら、私はそれに注意を払います