2015-12-21 2 views
3

Essayant de colorier un graphique DC.JS choropleth. Le colorAccessor par défaut ne fonctionne pas et je suis incapable de faire fonctionner les choses. Toute aide serait formidable. Je me sens comme une fonction de réduction personnalisée est nécessaire, mais je ne suis pas trop sûr de savoir comment ou où.Coloriage DC.JS Choropleth Charts

http://codepen.io/MichaelArledge/pen/vLKZzE?editors=001

 chart.width(c_w) 
       .height(c_h) 
       .dimension(zip_code_dim) 
       .group(zip_totals) 
       .projection(projection) 
       .colorAccessor(function(d){ console.log(d); return d.value; }) 
       .overlayGeoJson(statesJson.features ,"zip_area"); 

Répondre

3

Vous n'êtes pas en train de définir la fonction overlayGeoJson d'où pour obtenir la valeur

Vous avez défini comme ceci:

overlayGeoJson(statesJson.features ,"zip_area"); 

Si été

.overlayGeoJson(statesJson.features ,"zip_area", 
function(d){ return d.properties.zip}) 

maintenant b'coz la fonction ci-dessus renvoie les codes postaux afin d.value seront undefined

.colorAccessor(function(d){ return d.value; }) 

Il devrait être

.colorAccessor(function (d) { return colors(d); }); 

J'ai défini une échelle linéaire pour les couleurs de sa valeur doit être renvoyée de la fonction colorAccessor .

var colors = d3.scale.linear().range(["#E2F2FF", "#C4E4FF", "#9ED2FF", "#81C5FF", "#6BBAFF", "#51AEFF", "#36A2FF", "#1E96FF", "#0089FF", "#0061B5"]); 

Code de travail complet here

Hope this helps!

+0

Fonctionne parfaitement. Merci beaucoup. Relire la documentation encore et encore et ce concept n'a jamais cliqué. Je vous remercie. –