2016-03-24 68 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

雖然我總是很高興有一個回答標記,你可以評論你如何用它來解決你的問題(或者如果它確實只是答案)? –