2017-05-15 2 views
1

Ich versuche, eine Skala zu erstellen, die Ganzzahlen auf Farben abbildet, die die Füllung eines Kreises bestimmen.D3 skaliert keine Farben auf Werte

Ich habe versucht, mit d3.scaleThreshold die Werte in der Domäne "Eimer", aber ohne Erfolg. So wie es steht, bildet die Skala alle Werte auf eine Farbe ab.

Würde wirklich alle Hinweise hier zu schätzen wissen!

Code:

var colours = ["#6363FF", "#6373FF", "#63A3FF", "#63E3FF", "#63FFFB", 
"#63FFCB","#63FF9B", "#63FF6B", "#7BFF63", "#BBFF63", "#DBFF63",   
"#FBFF63","#FFD363", "#FFB363", "#FF8363", "#FF7363", "#FF6364"]; 

var heatmapColour = d3.scaleLinear() 
.domain(d3.range((0, 1, 1.0/(colours.length - 1)))) 
.range(colours); 

var hi_scale = d3.scaleLinear() 
.range([0,100]) 
.domain(hi_extent); 
+0

Verwenden Sie eine Ordinalskala. –

+0

Der Bereich der Domänenwerte variiert und ist nicht sortiert, sodass eine Ordinalskala nicht funktioniert. –

Antwort

1

Verwenden Sie einen Quantisierungswert Skala

https://jsfiddle.net/erxws2c8/

var colours = ["#6363FF", "#6373FF", "#63A3FF", "#63E3FF", "#63FFFB", 
"#63FFCB","#63FF9B", "#63FF6B", "#7BFF63", "#BBFF63", "#DBFF63",   
"#FBFF63","#FFD363", "#FFB363", "#FF8363", "#FF7363", "#FF6364"]; 

var heatmapColour = d3.scaleQuantize() 
.domain(d3.range(0, 1, 1.0/(colours.length - 1))) 
.range(colours); 

auch Sie einen zusätzlichen Satz von Klammern in d3.range((0, 1, 1.0/(colours.length - 1))) hatte, die Funktion verursacht ein Argument, um zu sehen, anstatt 3 .

Sie möchten vielleicht prüfen eine Quantilskala.

+0

Ah das hat funktioniert, schätze wirklich deine Hilfe. Vielen Dank! –

Verwandte Themen