1

現在、この例では独自のデータを挿入しようとしています。https://bost.ocks.org/mike/miserables/を参照してください

そのため、独自の JSON ファイルを作成しています。しかし、リンクの値がどのように色に変換されるのか、特に対角線ではよくわかりません。これはソースコードでここで起こっていると思います:

    function row(row) {
var cell = d3.select(this).selectAll(".cell")
    .data(row.filter(function(d) { return d.z; }))
  .enter().append("rect")
    .attr("class", "cell")
    .attr("x", function(d) { return x(d.x); })
    .attr("width", x.rangeBand())
    .attr("height", x.rangeBand())

.style("fill-opacity", function(d) { return z(dz); })

    .style("fill", function(d) { return nodes[d.x].group == nodes[d.y].group ? c(nodes[d.x].group) : null; })
    .on("mouseover", mouseover)
    .on("mouseout", mouseout);

z 属性はリンク値を表すと想定されているため、この値が高いほど、長方形の色が暗くなります。

だから私の2つの質問は次のとおりです。

1) fill-opacity 値が 0 と 1 の間であることがわかっているので、リンク値と fill-opacity 値の間の変換はどのように行われますか? すべてのリンク値が fill-opacity 値 1 に変換されるリンク値の上限はありますか?

2)対角線について。それらは、キャラクターと彼自身の間のリンク値を表すことになっています (これを「自動リンク」と呼びます)。元の JSON ファイルには、ソースがターゲットと等しいリンク要素がないことに気付きました。これは、自動リンクの値に関する情報が提供されていないことを意味します。では、それらはどのように計算されるのでしょうか? 対角線の正方形の値が異なることがわかりますが、それらはどのように計算されますか? 独自のデータを注入したとき、すべての対角線の四角形の塗りつぶし不透明度の値が 1 であることにも気付きました (それらはすべて完全に塗りつぶされています)。奇妙なことに、自動リンクの値を指定すると、それが 0 か 100 かに関係なく、正方形が完全に塗りつぶされます。

英語は私の母国語ではなく、私の質問は言葉にするのが難しいので、私が理解できたことを願っています.

誰かが何らかの方法で私を照らすことができれば、私はとても嬉しく思います.

ありがとう。

4

1 に答える 1

2
  1. リンク値と不透明度の間の変換zは、スケールであるを通じて行われます。

    z = d3.scale.linear().domain([0, 4]).clamp(true)

    ご覧のとおり、上限は 4 です。

  2. 対角線の四角形は、他のすべてと同じ方法で塗りつぶされます。つまり、2 つの文字のグループを比較することです。

    .style("fill", function(d) { return nodes[d.x].group == nodes[d.y].group ? c(nodes[d.x].group) : null; })

この場合、グループだけでなく実際のキャラクターも同じであるという事実は関係ありません。

于 2013-06-07T17:20:40.117 に答える