javascript - 使用 D3.js 库更改桑基图中节点的颜色。

标签 javascript d3.js sankey-diagram

这是用 Javascript 编写的代码部分,用于在桑基图中创建矩形节点。

代码:

node.append("rect")
      .attr("height", function(d) { return d.dy; })
      .attr("width", sankey.nodeWidth())
      .style("fill", function(d) { return d.color = color(d.name.replace(/ .*/, "")); })
      .style("stroke", function(d) { return d3.rgb(d.color).darker(2); })
      .append("title")
      .text(function(d) { return d.name + "\n" + format(d.value); });

每个节点都包含一个名称“location|month”。所以这里从 d3.scale.category20(); 分配随机颜色;

所以我想为位置相同的所有节点分配相同的颜色。 例如loc3|五月

因此位置为 loc3 的所有节点必须具有相同的颜色。

最佳答案

在该代码中,填充颜色是通过传递

的结果来确定的
d.name.replace(/ .*/, ""));

颜色比例函数。

如果您希望基于名称的位置部分的颜色相同,则需要修改上面的代码以仅提取位置。

根据您对 name 属性的描述,您可以简单地将名称拆分为 | 字符并返回第一部分:

d.name.split("|")[0];

关于javascript - 使用 D3.js 库更改桑基图中节点的颜色。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30614921/

相关文章:

javascript - 在 Django 模板语言中检索 URL

javascript - 循环遍历元素jquery选择器

javascript - 将 shell 通配符转换为正则表达式

javascript - 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)

json - Sankey图过渡

python - Sankey 与 Matplotlib 标签位置

javascript - 带有 csv 数据的 Google 桑基图

javascript - 如何在 JS 脚本中加载多个 CSS 文件

javascript - 交叉过滤器和D3 : Filter by group AND dimension

java - d3新手,无法用json显示图表