【问题标题】:D3 Sankey Chord ColorsD3 桑基和弦颜色
【发布时间】:2014-03-16 16:59:02
【问题描述】:

所以我正在使用 D3 的 Sankey API 开发一个 Sankey 图,并且我试图弄清楚如何更改往返节点的条带或绳索的颜色。我正在尝试做的一个例子可以在这里找到:

http://tamc.github.io/Sankey/

我希望能够单独选择每个乐队并选择该乐队的颜色。我找不到 D3 的 Sankey API 的任何文档,所以我不知道如何真正实现这一点。我尝试了通过在我提供的链接中搜索 Sankey 的代码找到的 setColors 函数。但是,这似乎不适用于我的代码。我以这段代码为基础开始了我的 Sankey:

http://tamc.github.io/Sankey/examples/simple.html

有人可以告诉我如何使用这个作为参考来改变乐队的颜色吗?

附:如果有人也可以告诉我如何更改节点的颜色,那就太好了!

【问题讨论】:

  • 该代码未使用 D3。它是用 Raphael 和 jQuery 完成的。

标签: javascript d3.js charts diagram sankey-diagram


【解决方案1】:

您链接到的示例在 Sankey 插件之上使用了不同的 API。我会为this example 解释。 Sankey 插件不绘制视觉元素,它只计算它们的位置,因此您可以随意设置颜色。

示例中链接的相关代码如下:

var link = svg.append("g").selectAll(".link")
  .data(energy.links)
  .enter().append("path")
  .attr("class", "link")
  .attr("d", path)
  .style("stroke-width", function(d) { return Math.max(1, d.dy); })
  .sort(function(a, b) { return b.dy - a.dy; });

要更改颜色,只需设置不同的类或显式设置stroke

.style("stroke", "red")

这当然也可以是一个函数,这样你就可以为不同的路径设置不同的颜色。节点相似:

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); })

在示例中,填充颜色是根据名称设置的——您可以随意调整。

【讨论】:

  • 我应用了您刚刚提供的所有代码,但似乎没有任何效果。
  • 你能发布一个完整的例子吗?
  • 我无法将完整的代码放在这里:var sankey = new Sankey(); sankey.stack(0,["CAS-1","COI-1", "CHP-1", "CEH-1", "CB-1"]); sankey.stack(1,["CAS-2","COI-2", "CHP-2", "CEH-2", "CB-2"]); sankey.stack(3,["CAS-3","COI-3", "CHP-3", "CEH-3", "CB-3"]); sankey.stack(4,["CAS-4","COI-4", "CHP-4", "CEH-4", "CB-4"]); sankey.setData([ // First column to second column ["CAS-1",100,"CHP-2"],["COI-1",100,"CHP-2"],["CHP-1",100,"COI-2"],["CEH-1",100,"CB-2"],["CB-1",100,"COI-2"] ]); 我不知道如何在此处正确格式化...
  • 如果我不知道你在做什么,我真的帮不了你。如果您要修改我引用的示例,我发布的代码应该可以工作。
  • 我引用的 simple.html 示例呢?我的代码实际上是它的构建版本(所以只是更多的数据和堆栈)。关于如何修改该示例的波段颜色的任何想法?
猜你喜欢
  • 1970-01-01
  • 2018-04-13
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多