【发布时间】:2015-08-25 20:53:15
【问题描述】:
我目前正在使用 d3js 创建一张德国地图,以可视化一些数据。我现在使用 csv 添加了一些城市,它们在地图中显示为圆圈。我希望某些城市使用的数据越多,颜色就越不同。有人知道我如何实现这一目标吗?
【问题讨论】:
标签: json database d3.js colors geometry
我目前正在使用 d3js 创建一张德国地图,以可视化一些数据。我现在使用 csv 添加了一些城市,它们在地图中显示为圆圈。我希望某些城市使用的数据越多,颜色就越不同。有人知道我如何实现这一目标吗?
【问题讨论】:
标签: json database d3.js colors geometry
你可以像这样声明一个颜色范围:
var color = d3.scale.linear()
.domain([d3.min(array), d3.max(array)])
.range(["#fff7f3", "#49006a"]);
然后为每个圆圈设置样式:
.style("fill", function(d) {
return color(+d.data);
});
但是您需要将数据压缩为每个城市的一个值,如下所示:
d.values.reduce(function(sum, d){
return sum + d.amount;
},0)
这是 Mike 网站上的一个示例:http://bl.ocks.org/mbostock/4060606
【讨论】: