D3比例:将字符串映射到颜色

时间:2015-10-05 18:19:13

标签: d3.js

我需要使用D3.scale将字符串映射到颜色。但我不确定哪种尺度最符合我的需要。

输入将是许多字符串,其数量在前面未确定。所以我想我不能使用.domain来指定输入字符串。 输出将是颜色。我希望范围可以是[“hsl(150,80%,80%)”,“hsl(250,30%,40%)”]。

我试过

d3.scale.ordinal()
    .range(["hsl(150,80%,80%)", "hsl(250,30%,40%)"])
    .interpolate(d3.interpolateHcl); 

但它不起作用。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

  const domain = Array.from(new Set(someArray))
  const index = domain.indexOf(x)
  const col = d3.interpolateSinebow(index/domain.length); //give me 0 to 1 values
  console.log(col) // rgb(123, 123, 123)

足够好吗?

https://github.com/d3/d3-scale-chromatic