【问题标题】:d3 reading csv/tsv files if column names are numbers?如果列名是数字,d3 读取 csv/tsv 文件?
【发布时间】:2014-03-13 10:53:47
【问题描述】:

使用世界银行的数据进行项目。他们的数据被组织成在他们的 csv 中有单独的年份作为列名。除了可能更改名称之外,我将如何使用 d3.csv 访问它们并将它们映射到自定义数组中,因为我不会使用所有值。

例如,我使用的文件是每个国家/地区的 GDP。每个元素/行的格式如下

"Country Name","Country Code","Indicator Name","Indicator Code", "1960","1961","1962","1963","1964","1965","1966","1967","1968","1969","1970","1971","1972","1973","1974","1975","1976","1977","1978","1979","1980","1981","1982","1983","1984","1985","1986","1987","1988","1989","1990","1991","1992","1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013",

如果我想要英国、巴西、中国、俄罗斯、美国等国家的 GDP 值,以及 2004-2012 年的 GDP 值,我该怎么做?

代码会不会是这样的

d3.csv(URL, function(d) {
     return {
         AttributeName : d.ColumnName
         //Continues for all columns I need
     };

});

同样,如果列名是实际整数,则 d.ColumnName 将不起作用。我将如何解释列名中的空格,如图所示? 我还将如何在文档本身或控制台中正确显示元素?

对于这么多问题,我深表歉意。随时指导我找到解决方案。谢谢。

感谢拉斯的回答。我将追加我想做的下一步。现在,如果我想使用这些数据制作折线图,我将如何访问生成的对象数组?同样,我只想要 200 多个元素数组中的特定国家/地区。

【问题讨论】:

    标签: javascript csv d3.js


    【解决方案1】:

    您可以通过使用访问属性的替代语法来解决所有这些问题——而不是

    d.foo
    

    你可以写

    d["foo"]
    

    这也适用于空格、数字等:

    d["11111"]
    d["string with spaces"]
    

    【讨论】:

    • 谢谢!这么简单的事情,我不知道。现在,如果我想使用这些数据制作折线图,我将如何访问生成的对象数组?同样,我只想要 200 多个元素数组中的特定国家/地区。
    • 使用.filter()
    猜你喜欢
    • 2017-03-31
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 2016-09-13
    • 2017-05-17
    • 2017-11-13
    • 1970-01-01
    相关资源
    最近更新 更多