首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建d3 choropleth数据集

创建d3 choropleth数据集
EN

Stack Overflow用户
提问于 2013-07-14 21:19:01
回答 1查看 2K关注 0票数 0

根据this example的说法,我一直在尝试创建一个D3合唱团。除了如何创建如下所示的unemployment.tsv之外,我已经了解了所有内容:

代码语言:javascript
复制
id      rate
1001    .097
1003    .091
1005    .134
1007    .121
...     ...

进一步挖掘之后,我发现I是对某些d3图形对象的引用。我的问题是,是否有一种简单的方法来设置这些it的IDS值,或者我必须手动完成?

如果可能的话,我正在寻找一个像Google Charts一样简单的方法。

EN

回答 1

Stack Overflow用户

发布于 2013-07-14 23:19:52

用于绘制地图的us.json文件包含有关各县轮廓及其FIPS code的信息

代码语言:javascript
复制
{"type":"Polygon","arcs":[[250,-204,-17]],"id":30047}

unemployment.tsv的每一行代表一个县,包含它的FIPS代码和失业率。加载文件时,将从对象数组转换该文件:

代码语言:javascript
复制
> unemployment
[{id: '1001', rate: '.097'},
 {id: '1004', rate: '.091'},
 {id: '1005', rate: '.134'},
 ... ]

以key为县id,rate为值的对象:

代码语言:javascript
复制
var rateById = {};
unemployment.forEach(function(d) { rateById[d.id] = +d.rate; });

> rateById
{1001: .097,
 1004: .091,
 1005: .134}

( +d.rate as将失业字符串转换为数字。)

一旦完成,给每个县着色就很简单了,只需用形状的id在rateById中找到相应的失业率,并用color scale将该数字转换为颜色即可。

代码语言:javascript
复制
.style("fill", function(d) { return color(rateById[d.id]); });

更直接地回答您的问题:您可能希望使用国家/地区FIPS码code您的县*级数据,并使用它为您的地图上色。如果您不使用按县数据,您可以尝试转换它(将经度/经度或城市/州映射到县)或完全使用另一种地图(有关世界地图,请参阅this example和下面的注释)。

*我没有任何类型的地理信息系统背景-每次我尝试这样做时,我最终都会使用旧的FIPS代码->县名称查询表,并且必须手动更正几个;在NIST网站上可能有更好的源文件,但我一直找不到。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17639755

复制
相关文章

相似问题

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