2012-06-21 3 views
6

私はSVG(D3.jsを使用してすべてを呼び出すこと)を新しくしました。最近私は、私が取り組んでいるプロジェクトに大きな制約がありました。私は、私が扱っているデータの各カテゴリに "g"クラスを作ることができるようにしたい。残念ながら、私はデータを一方向(例:person1 ---> person2ではなくperson2 ---> person1)でしか接続しないXMLファイルから取得しています。私ができることをしたいのは、自分のデータから生成された各シェイプをルートクラスとそれが接続しているクラスに配置することです。 2つ以上のクラス(gクラス= person1とperson2など)にこのシェイプを追加できれば、これは私が信じる最速の解決策になります...しかし、これは可能なのでしょうか? SVGシェイプを2つ以上のクラスに設定できますか?それとも、新しいものを定義するときに上書きされますか?SVGの複数のクラス

私は本当に誰かが私が求めていることを理解できることを願っています。最終的なプロジェクトのすべての細部を捨てることなく、私の問題を言葉にするのは難しいことです。

答えて

11

はい、複数のクラスを設定できます。例えば、

<g class="person1 person2"> 

あるいは、D3で:

g.attr("class", "person1 person2"); 
+1

は、これは信じられないニュースです。私の上司が示唆した回避策は、おそらくJS、D3、または英語に堪能ではないので、彼のアプローチが大きすぎる理由を説明するのは非常に難しかったです。この知識によって、私は1週間ほどでやり遂げることができます。 – 1080p

+2

また、あなたのすべての仕事に感謝します!数週間前にデータ視覚化のインターンシップを受けたばかりです。私は非常に動的なネットワークの視覚化に取り組む仕事を与えられました。いくつかの調査の後、私はメインの図面ライブラリとしてd3を使いました。あなたのgithubギャラリーとあなたが投稿したチュートリアルは、このプロジェクトのすべてのステップを通して私を運んできました。 – 1080p

0

つ以上のノート:あなたはファイル内から関数を呼び出している場合:

.attr("class",function(d) { return d.person1+" "+ d.person2;} ) 
関連する問題