首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >D3三键和弦色

D3三键和弦色
EN

Stack Overflow用户
提问于 2014-03-16 16:59:02
回答 1查看 2.9K关注 0票数 1

因此,我正在开发一个Sankey图,使用D3的Sankey API,并且我正在试图找出如何改变带的颜色,或者说从节点到节点的线。我想要做的一个例子可以在这里找到:

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

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

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

有人能给我一个想法,如何改变一个波段的颜色,以此作为参考吗?

如果有人也能告诉我如何改变节点的颜色,那就太好了!

EN

回答 1

Stack Overflow用户

发布于 2014-03-16 17:11:14

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

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

代码语言:javascript
复制
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

代码语言:javascript
复制
.style("stroke", "red")

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

代码语言: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); })

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22439891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档