我用d3库覆盖了传单地图。将显示点以及地图。但是,Colorbrewer不起作用...
它应该根据其值为地图上的点着色,相反,它们保持黑色。我可以用if value == 0.1
这样的东西进行硬编码,但这不是我想要的...
多数民众赞成在我的代码中,可以看到here的citys.json结构,而colorbrewer是这个one
...
// add colorbrewer
var colorScale = d3.scale.quantize()
.domain([extent[0], extent[1]])
.range(colorbrewer.YlGn[n]);
// uses d3 data join method
// for each data point a "path" is created
var feature = g.selectAll("path")
.data(collection.features)
.enter()
.append("path")
.style("fill", function(d) {
colorScale(d.properties.pop_max);
});
...
任何想法出了什么问题?!
我的
d.properties.pop_max
中有负值。可能是问题所在吗? 最佳答案
您在return
函数中缺少fill
。
...
...
.style("fill", function(d) {
// add a 'return' here.
return colorScale(d.properties.pop_max);
});
另外,由于
.domain(extent)
返回两个元素colorScale
数组,因此您可以在初始化d3.extent
时直接编写[min, max]
var colorScale = d3.scale.quantize()
.domain(extent) // instead of .domain([extent[0], extent[1]])
.range(colorbrewer.YlGn[n]);
关于javascript - D3中的ColorBrewer不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35178087/