2014-04-06 12 views
13

Sto provando a creare qualcosa di simile a una scala di quantizzazione, ma mi comporto come una scala di colori lineare?scala colore d3 - lineare con più colori?

Quando provo a inserire più colori in una scala lineare, sembra che si riduca solo tra i primi due colori.

Mi piacerebbe più colori come una scala di quantizzazione, ma sfumare tra quei colori. Non sono sicuro che sia possibile.

//red and green works ok 
var color = d3.scale.linear() 
      .range(['red','green']); 

//doesn't work - only red and green show 
var color = d3.scale.linear() 
      .range(['red','green', 'blue']); 


//red green and blue show, however it doesn't fade between the colors 
var color = d3.scale.quantize() 
      .range(['red','green', 'blue']); 

risposta

19

devi usare dominio di valore 'perno' come:

d3.scale.linear() 
    .domain([0, pivot, max]) 
    .range(['red', 'green', 'blue']); 

Dal documentation for continuous scale domains:

Sebbene scale continue in genere hanno due valori ciascuno nel loro dominio e la gamma, specificando più di due valori produce una scala a tratti. Ad esempio, per creare una scala di colori divergente che interpola tra il bianco e il rosso per i valori negativi, e bianco e verde per i valori positivi, dico:

var color = d3.scaleLinear() 
    .domain([-1, 0, 1]) 
    .range(["red", "white", "green"]); 

color(-0.5); // "rgb(255, 128, 128)" 
color(+0.5); // "rgb(128, 192, 128)" 
+0

Grazie Anto, sono in un mondo diverso ora e paradiso Ho avuto la possibilità di fare un tentativo, ma mi sembra una buona idea +1 da parte mia. –

+0

Il tuo collegamento si è rotto a causa dello spostamento dei documenti API mentre la v.4 di D3 è attiva. –

+0

@KonradViltersten questo è un ottimo motivo per cui le persone non dovrebbero pubblicare un link come risposta. – JasTonAChair

Problemi correlati