在d3中构建堆叠条形图时动态获得不同的颜色

时间:2018-11-20 21:31:11

标签: javascript d3.js

我正在尝试在D3中读取一个csv文件,并尝试构建具有2个属性的堆叠条形图,在csv文件中,我不知道特定属性存在多少个唯一值。因此,根据独特属性的数量,我需要使用许多不同的颜色来绘制堆叠的条形图。

在D3或javascript中,给定整数n如10或15,有什么方法可以得到不同的颜色吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

function generatePallete(n) {
  const scale = t => d3.interpolateSinebow(t * 0.85);
  return d3.range(n).map(i => scale(i / n))
}

您可以将d3.interpolateSinebow替换为任何其他顺序刻度。我将t乘以0.85是因为d3.interpolateSinebow是循环的,并且开始到结束的颜色是相同的。

以下是生成的货盘的示例: