2016-03-24 19 views
0

Dağılım grafiğindeki her grafik için farklı bir renk oluşturan rastgele bir renk işlevim var.Dağılım grafiği grafikleri için sabit bir renk kümesi kullanın

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

Ancak, grafikler için sabit bir renk kümesi nasıl verebilirim?

Cevap GÜNCELLEME:

the documentation göre
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

Önceden tanımlanmış renk ölçekleri birini kullanabilirsiniz: https://github.com/mbostock/d3/wiki/Ordinal-Scales#category20 –

cevap

1

, renk işlevi ilk (bu anda gelen emin değilim) bir temel renk olan ve bir nesne verilerini tutan, iki parametreyi alabilir nokta için (endeks dahil). Onaltılık renk dizeleri dizisinden istediğiniz rengi belirlemek için bu bilgileri kullanabilirsiniz.

Örnek:

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

Davam farklıdır yapamam data.color farklı efsane verileri için kullanıldıkları için data.color'u kullanırlar, ancak benim datalarım tek bir veriyle dağılırlar – anson920520

+0

Lütfen şunu görünüz: http://jsfiddle.net/ot19Lyt8/9/ – anson920520

+0

Cevap işaretlendi, sorununuzu çözmek için nasıl kullandığınıza (veya gerçekten basit bir cevapsa) yorum yapabilir misiniz? –

İlgili konular