当从一组对象数组中绘制任意数量的行时,d3.js是唯一的颜色

时间:2015-11-02 20:44:10

标签: javascript d3.js

我使用以下代码绘制任意数量的行,其中allLines是一个对象数组的数组,这样每个对象数组都会产生一条线。现在所有的线都是相同的颜色。 我如何才能使每个人都成为一种独特的颜色?我正在寻找一种不会涉及使用{* 1}}

的替代品
nest()

1 个答案:

答案 0 :(得分:0)

您可以使用其中一个predefined scales,例如d3.scale.category20()。你像任何其他D3规模一样使用它:

var colours = d3.scale.category20();
colours(someData);
colours(someOtherData);

对于你的行,你有一个数组作为数据,所以不会直接工作。但是,您可以根据行的值计算某些内容并使用它,例如

.attr("stroke", function(d) {
  return colors(d3.sum(d, function(e) {
    return e.whateverTheNumberThatDeterminesTheLineIs;
  }));
})