0

私は D3 に力を入れており、Mike Bostock や私が見つけることができる他の人によるサンプルを見て、ドキュメンテーションをブラッシュアップしており、Scott Murray による Interactive Data Visualization に関する本 (D3 に関する本) も持っています。

私は現在接続チャートに取り組んでおり、サンプルからデータを変更するだけでなく、これをすべて理解するのに十分なほど理解し始めていますが、まだ理解できないいくつかの問題に直面しています.

これが私のサンプルリンクです http://www.nogumallowed.com/test4.php

そして、ここに私のデータがあり ます http://www.nogumallowed.com/userImages/friendData1.JSON

このサンプルには 7 人が参加し、残りはすべて facebook の「いいね!」です。グラフは、ユーザー間のいいね! の交差を示します。私の問題はパスにあります。必要なパスを2倍追加しているようですが、その理由はわかりません。enter 関数や、DOM にないものを選択して DOM に配置する方法については、まだ慣れていません。

コードから数えてみると、115 のパスがあるはずですが、230 のパスを生成し続けています。

私はまだd3に慣れていないので、一生これを理解することはできません.

私が達成したいこと...グラデーションを作成するとき、開始位置は、ユーザーに接続されているときは青で、その後、すべての好きな色に対して別のさまざまな色にする必要があります。私がまとめたコードから、青で始まるユーザー以外のものがあってはならないと思います。ご覧のとおり、私はそれに遭遇しています。


編集:私の問題は、間違ったパスを取得することではなく、A と B との接続があり、このポイントがパスの最初に来ることを知らないことがわかりました。接続 A のパスを常に青色にし、パス B の接続を常に緑色にしたい場合、このパスを超えた単純なソースに A のソースと B のターゲットがあることを検出する方法がありません。どちらが本当に最初になるかわかりません。これを確認するために、サンプル スクリプトを軽量バージョンに更新しています。

この例では、7 人のユーザー名は常に青で表示され、他のすべてのユーザー名は常に赤で表示される必要がありますが、ご覧のとおり、常にそうであるとは限りません。これは私が現在途方に暮れているところです。

4

1 に答える 1

0

データ ファイルには実際には 230 個のリンクが含まれているようです。

var n = 0;
classes.forEach(function(d) { n = n + d.imports.length; });
// n == 230

また、データに同じ名前の項目があります (例: classes[8] abd classes[115]) - 混乱を招く可能性があります

于 2013-08-01T20:40:08.003 に答える