【问题标题】:How do I parse a JSON file to bind data to a d3 choropleth map如何解析 JSON 文件以将数据绑定到 d3 等值线图
【发布时间】:2013-08-15 20:37:39
【问题描述】:

我正在尝试从 JSON 文件中获取数据并将其链接到我的 geoJSON 文件以创建一个 choropleth 地图,其中县颜色绑定到“数量”值,但我也想要一个相应的“评论”值当我将鼠标悬停在该县时,绑定到一个 div。

当我的counties.json 数据采用以下形式时,我在http://bl.ocks.org/eoiny/6244102 的代码将生成一个等值线图:

"Carlow":3,"Cavan":4,"Clare":5,"Cork":3,

但是当我尝试使用以下形式时,事情变得很棘手:

{
"id":"Carlow",
"amount":11,
"comment":"The figures for Carlow show a something." },

我不知道如何加入来自counties.json的“id”:“Carlow”和从ireland.json创建的“id”:“Carlow”路径,同时可以访问counties.json 中的其他值,即“金额”和“评论”。

为我口齿不清的问题道歉,但如果有人能指出我的例子或参考资料,我可以查一下,那就太好了。

【问题讨论】:

    标签: json d3.js


    【解决方案1】:

    我会在加载数据时对其进行预处理,以便在您的 quantize 函数中更轻松地进行查找。基本上,用这个替换这个:data = json;

    data = json.reduce(function(result, county) {
        result[county.id] = county;
        return result;
    }, {});
    

    然后在你的量化函数中,你得到这样的数量:

    function quantize(d) {
        return "q" + Math.min(8, ~~(data[d.id].amount * 9 / 12)) + "-9";
    }
    

    预处理所做的就是翻转这个数组(很容易通过索引访问):

    [{id: 'xyz', ...}, {id: 'pdq', ...}, ...]
    

    使用县键进入该对象(通过县 ID 轻松访问):

    {'xyz': {id: 'xyz', ...}, 'pdq': {id: 'pdq', ...}, ...}
    

    这是工作要点:http://bl.ocks.org/rwaldin/6244803

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      • 2015-10-17
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多