2016-03-24 36 views
0

我有一个随机颜色函数,它为散点图中的每个图产生不同的颜色。为散点图图使用固定颜色集

function getRandomColor() { 
          var letters = 'ABCDEF'.split(''); 
          var color = '#'; 
          for (var i = 0; i < 6; i++) { 
           color += letters[Math.floor(Math.random() * 16)]; 
          } 
          return color; 
         } 

但是,我该如何给定一个固定的颜色集?

答案更新:

var colors = ['red','green','blue','#2A0A0A','#00FF40','#8A4B08',"#610B21","#0A2229","#5E610B","#3B0B2E","#FF0040","#B43104","#0B6121","#01DFA5","#2E2EFE","#DF01A5","#088A4B","#B40431","#1C1C1C","#B45F04"]; 


    type: 'scatter', 
    color: function (color, d) { 
     return colors[d.index]; 
     }, 
+0

您可以使用预定义的色彩尺度之一:https://github.com/mbostock/d3/wiki/Ordinal-Scales#category20 –

回答

1

根据the documentation,颜色函数可以接收两个参数,首先是一个基色(不知道在哪里这个来自此刻)和物体保持数据(包括索引)。您可以使用此信息从十六进制颜色字符串数组中确定所需的颜色。

例子:

var colors = ['#1f77b4','#aec7e8','#ff7f0e','#ffbb78']; 
... 
c3.generate({ 
data: { 
    color:function(color, data){    
     return colors[data.index%colors.length]; 
     //Example way of picking out your colors from a fixed array 
    }, 
...} 
+0

我的情况是不同的,我不能使用data.color,因为data.color是用于不同的图例数据,但我的情节分散一个数据 – anson920520

+0

请参阅:http://jsfiddle.net/ot19Lyt8/9/ – anson920520

+0

虽然我总是很高兴有一个回答标记,你可以评论你如何用它来解决你的问题(或者如果它确实只是答案)? –