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("填充不透明度", 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 属性应该代表链接值,所以这个值越高,矩形的颜色就越深。

所以我的两个问题是:

1)我们知道fill-opacity值在0到1之间,那么link值和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. 对角线方块的填充方式与其他所有内容相同——通过比较两个字符的组。

    .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 回答