使用不同的配色方案

时间:2018-04-22 03:35:34

标签: javascript d3.js color-scheme

当我尝试在d3中应用分歧颜色方案时,例如d3.interpolateSpectral with sequential scale,它总是返回:

  

未捕获的TypeError:t不是函数

因为没有" t"在我写的代码中,我认为它与" t"在original colour scheme中 如果是的话,我不确定如何应用,因为我引用一个例子来使用that colour scheme,没有" t"既不

以下是颜色比例的相关代码:

var color=d3.scaleSequential(d3.interpolateSpectral);

color.domain([d3.min(data, function(d){return d.population;}), 
                            d3.max(data, function(d){return d.population;})]);

selection.style("fill", function(d){                    
    var value=d.properties.value;                   
    if(value){
        return color(value);
    } else{
        return "#ccc";
    }

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

鉴于您的错误,您可能正在使用D3 v4。如果这是正确的,你必须参考scale-chromatic迷你库:

<script src="https://d3js.org/d3-scale-chromatic.v1.min.js"></script>

看看这个演示,没有引用迷你库,我们得到同样的错误(打开浏览器的控制台看看):

&#13;
&#13;
var color = d3.scaleSequential(d3.interpolateSpectral);

console.log(color(1))
&#13;
<script src="https://d3js.org/d3.v4.min.js"></script>
&#13;
&#13;
&#13;

如果我们引用迷你库,我们就不会再看到错误了:

&#13;
&#13;
var color = d3.scaleSequential(d3.interpolateSpectral);

console.log(color(1))
&#13;
<script src="https://d3js.org/d3.v4.min.js"></script>
<script src="https://d3js.org/d3-scale-chromatic.v1.min.js"></script>
&#13;
&#13;
&#13;

最后,值得一提的是,使用D3 v5,我们不必参考它:

&#13;
&#13;
var color = d3.scaleSequential(d3.interpolateSpectral);

console.log(color(1))
&#13;
<script src="https://d3js.org/d3.v5.min.js"></script>
&#13;
&#13;
&#13;