【问题标题】:D3 - nest.entries() throws Uncaught TypeErrorD3 - nest.entries() 抛出 Uncaught TypeError
【发布时间】:2014-04-12 05:26:50
【问题描述】:

我试图通过将 Mike 的 excellent stacked area chart 替换为我自己的数据来窃取它,但在这种级别的示例改编中,我通常不会遇到这种情况。具体来说,它会在控制台上抛出这个:

Uncaught TypeError: Cannot read property '1' of undefined

这是指实现堆栈功能的相当无害的行:

var layers = stack(nest.entries(data));

我的数据模式与示例的数据模式几乎完全匹配 - 一个区别是“日期”有一个 4 位数的年份,但我已经用

d3.time.format("%m/%d/%Y");

我不明白为什么'nest.entries(data)' 会以未定义的形式出现,甚至不知道为什么堆栈函数要求一个名为“1”的属性。任何帮助将不胜感激。

在这里尝试图表:http://bl.ocks.org/wboykinm/10499388

【问题讨论】:

    标签: javascript d3.js charts


    【解决方案1】:

    确保每个组的日期相同,如下所示:

    date,key,value
    1/4/2013,phone,549
    1/4/2013,email,402
    1/4/2013,url,620
    8/4/2013,phone,165
    8/4/2013,email,265
    8/4/2013,url,52
    15/4/2013,phone,300
    15/4/2013,email,145
    15/4/2013,url,450
    ...
    

    【讨论】:

    • 哦,我完全不知道;那是个很好的观点。数据实际上是因组而异的。我可能可以按周对其​​进行标准化,但我是否正确理解堆叠图表总是需要 x 轴值在组之间排列?
    • 差不多,有时你会看到它是这样组织的:1/4/2013,549,402,620,其中的列代表date,phone,email,url。检查这个example,使用日期作为分组变量。
    • 关于 x 轴的细微差别...并不总是因为您可能需要水平条形图,例如 here...但您会想到必须沿轴分组。
    猜你喜欢
    • 1970-01-01
    • 2016-12-01
    • 2015-10-14
    • 1970-01-01
    • 2023-03-04
    • 2021-01-07
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多