我用d3库覆盖了一张传单地图。这些点和地图一样被显示出来。然而,彩色酿酒机不起作用.它应该把地图上的点按照它们的价值来着色,相反,它们会保持黑色。我可以用像if value == 0.1这样的东西硬编码,但这不是我想要的.
这是我的代码,cities.json的结构可以看到这里,彩色酿酒器是这个一
...
// 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中有负值。这就是问题所在吗?
发布于 2016-02-03 14:59:08
您在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]);https://stackoverflow.com/questions/35178087
复制相似问题