如何在d3.js中生成1000个唯一颜色

时间:2013-12-12 15:12:49

标签: javascript d3.js

我正在使用力导向图,其中我有1000个节点。我想显示每个节点有不同的颜色。那些节点应该可以在其他节点中识别。

我使用了以下d3颜色

var color = d3.scale.category20();

但问题是它之后只会产生20种颜色,再次开始为不同的组使用相同的颜色。

我使用以下代码使用javascript创建了1000种独特的颜色:

   var color = [];
        for(i=0;i<1000;i++){
    /*      var randomcolor = '#'+Math.floor(Math.random()*16777215).toString(16);
            color[i] = randomcolor;*/
    /*      var x=Math.round(0xffffff * Math.random()).toString(16);
            var y=(6-x.length);
            var z="000000";
            var z1 = z.substring(0,y);
            //var randcolor= "#" + z1 + x;
            var randcolor = '#'+(Math.random()*0xFF0000<<0).toString(16);
            color[i] = randcolor;
   */       


        var letters = '0123456789ABCDEF'.split('');
        var randcolor = '#';
        for (var j = 0; j < 6; j++ ) {
            randcolor += letters[Math.round(Math.random() * 15)];
        }
        color[i]= randcolor;
    }

但问题是这么多颜色具有相同的sades,所以这些节点是可识别的。如何生成颜色,每种颜色应该与其他颜色相同。

1 个答案:

答案 0 :(得分:0)

如果有帮助,这里有一个相关的答案: https://stackoverflow.com/a/25302128/9972273

您有随机的颜色生成器,可以生成无限多种颜色。低于1000。

ValueError: too many values to unpack