首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColorBrewer in D3不起作用

ColorBrewer in D3不起作用
EN

Stack Overflow用户
提问于 2016-02-03 13:14:01
回答 1查看 224关注 0票数 1

我用d3库覆盖了一张传单地图。这些点和地图一样被显示出来。然而,彩色酿酒机不起作用.它应该把地图上的点按照它们的价值来着色,相反,它们会保持黑色。我可以用像if value == 0.1这样的东西硬编码,但这不是我想要的.

这是我的代码,cities.json的结构可以看到这里,彩色酿酒器是这个

代码语言:javascript
复制
        ...

                    // 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中有负值。这就是问题所在吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-03 14:59:08

您在return函数中缺少了一个fill

代码语言:javascript
复制
...
...
.style("fill", function(d) {
     // add a 'return' here.
     return colorScale(d.properties.pop_max);
});

此外,您可以在初始化.domain(extent)时直接写入colorScale,因为d3.extent返回一个双元素[min, max]数组。

代码语言:javascript
复制
var colorScale = d3.scale.quantize()
                .domain(extent) // instead of .domain([extent[0], extent[1]])
                .range(colorbrewer.YlGn[n]);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35178087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档