【问题标题】:d3.csv map data as an arrayd3.csv 将数据映射为数组
【发布时间】:2013-11-03 23:52:24
【问题描述】:

我目前正在使用 dc.js、crossfilter.js 和 d3.js 来呈现一些可视化。我遇到了一个与我在Crossfilter queryd3 csv data loading 寻找的帖子非常相似的帖子。

我的目标是解析我的 csv,并对于某个列,将其解析为每个对象行中的数组。例如,我有:

我的数据目前显示为:

[
{FY: 2011, proj_name: "project 1", category: "fruit", subcategory: "strawberry, mango", total: 1510},
{FY: 2011, proj_name: "project 2", category: "fruit", subcategory: "orange, mango", total: 100},
{FY: 2011, proj_name: "project 2", category: "vegetable", subcategory: "celery", total: 100}
]

但我希望将数据格式化为:

[
{FY: 2011, proj_name: "project 1", category: "fruit", subcategory: ["strawberry", "mango"], total: 1510},
{FY: 2011, proj_name: "project 1", category: "fruit", subcategory: ["orange", "mango"], total: 100},
{FY: 2011, proj_name: "project 1", category: "vegetable", subcategory: ["celery"], total: 100}
]

这是我可以放入 data.forEach(function (d)) 的东西吗?

    d3.csv("data.csv", function(data) { 
    data.forEach(function (d) { 
        d.FY = +d.FY; 
        d.total = +d.total; 
        d.subcategory = d.subcategory.split(/,/); 
        }) 
    })

我认为这是不正确的,它根本不起作用,但我在这里得到的是,这是需要在本专栏中重复完成的事情,以便我以后可以将子类别作为标签存储on.. 有什么想法/反馈吗?

在此先感谢

【问题讨论】:

    标签: javascript csv d3.js dc.js


    【解决方案1】:

    D3 已经涵盖了这一点,d3.csv 的格式为:d3.csv(url[, accessor][, callback]) 其中访问器是调用 csv 中每一行以转换数据的函数。试试这个:

    d3.csv("data.csv", function(d) { 
      return {
        FY: +d.FY,
        total: +d.total,
        category: d.category,
        subcategory: d.subcategory.split(/,/)
      };
    });
    

    【讨论】:

      猜你喜欢
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多