2012-02-23 19 views
9

次のようなスイムレーンチャートを生成する必要がありますが、Y軸に日付が表示されます。私が必要とするすべてのノードは、依存関係を持つアクティビティであり、フロー制御要素はありません。d3を使用してスイムレーンチャートを作成

http://upload.wikimedia.org/wikipedia/commons/a/a5/Approvals.jpg

D3のようなものを使用して、このことは可能ですかチャートのこのタイプのために使用することをお勧めJavaScriptライブラリはありますか?私はそれのような例を見ていないので、d3を使用することが可能な場合、私はどこから始めるのか分かりません。どんなヒントも大歓迎です。

答えて

14

前回の回答とコメントに基づいて、Raphael.jsを使用してグラフを実装する方法を開始しました。 600本以上のコード(主に裸の骨を補うフレームワーク)を書いた後、私はRaphael.jsがレンダリングテキストで非常に遅いことを発見しました。正確な理由は不明ですが、明らかに既知の問題です。最終的には、テキストのレンダリングに費やされた時間の80%で300アイテムのグラフをレンダリングするのに3.5秒かかりました。

その後、私はd3.jsで始まりました。私は、従来のブラウザのサポートが問題ではない場合、データバインドされたチャートを作成するときには、d3.jsがはるかに良い選択であることを発見しました。 d3.jsにスイムレーンチャートを作成すると、約100行のコードと600+以上のRaphael.jsが表示されました。また、d3.jsバージョンは、機能性が高く、見た目が良く、応答性も高いです。

宣言的なスタイルd3.jsには多少慣れていますが、データを簡単に扱うことができます。追加のボーナスとして、私のグラフは約250ミリ秒でレンダリングされます:)

私が作成した最終的なスイムレーンチャートはhttp://bl.ocks.org/1962173を参照してください。

+0

これは素晴らしく、ほとんど私が必要とするものです。私のユースケースはMozilla Butterのように、タイムラインの中のノードを追加したり、ノードとやりとりしたりできるような、この仕事をやっています。タイムラインの例は、https://popcorn.webmaker.org/で確認できます。 – abritez

-1

私の意見では、raphael.jsが適しています。 IE6-8を含むすべてのブラウザをサポートし、d3はSVG対応ブラウザでのみ動作します。

+1

これがどのように役立つかわかりません。 OPには、ブラウザのサポート要件は記載されていません。 – Dogbert

+0

私は同意します。私は少し時間のためにラファエルを使用しており、私はそれが非常に素晴らしいツールであることがわかり、それはIE6までずっと働いているということは素晴らしいです。 –

+0

@Dogbert raphael.jsでは、この種のチャートはネイティブでサポートされていませんが、raphael.jsではブラウザのサポートが広がります。これが私がそれをお勧めする理由です。 – bjornd

関連する問題