【问题标题】:Dc.js lineChart not displaying crossfiltered dataDc.js lineChart 不显示交叉过滤的数据
【发布时间】:2017-06-05 19:15:53
【问题描述】:

我一直在努力解决这个问题,但我一生都无法理解为什么我的 dc.js lineChart 没有显示来自交叉过滤数据对象的数据。我实际上是在尝试逐字复制粘贴 dc.js 的 d3noob 书籍示例,您可以在此处以工作格式找到它:

https://bl.ocks.org/d3noob/raw/6077996/

但是,当我尝试在本地服务器或 blockbuilder 上复制粘贴完全相同的源代码时,lineChart 为空白且不显示任何数据。你可以在这里找到我目前的尝试:

http://bl.ocks.org/anonymous/9d225b361c740256376e04bbbc6f4e47

我什至确保包含 d3noob 在他的书示例中使用的确切 javascript 库和 css(有效),以确保这不是与某些库的较新版本的兼容性问题,但这并没有任何区别。如有任何帮助,我将不胜感激!

【问题讨论】:

    标签: javascript d3.js dc.js crossfilter


    【解决方案1】:

    嗯,我似乎已经想出了如何解决它。看来我下载的数据文件与 d3noob 在他的块上发布的数据文件的数据日期范围不同。如果我从此替换 timeChart 的硬编码域:

    .x(d3.time.scale().domain([new Date(2013, 6, 18), new Date(2013, 6, 24)]))
    

    到这里:

    .x(d3.time.scale().domain([new Date(2013, 7, 9), new Date(2013, 7, 18)]))
    

    事情开始奏效了。当然,正确的做法是避免一开始就使用以下代码对任何内容进行硬编码:

    .x(d3.time.scale().domain(d3.extent(data, function(d) { return d.dtg; })))
    

    【讨论】:

    • 或者,在大多数情况下,您可以不使用体重秤的域,而改用chart.elasticX
    • 谢谢@Gordon。几周前我刚开始学习 d3/dc,这很有趣。感谢您与其他人在 dc 和 crossfilter 上的不懈努力!干杯
    猜你喜欢
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多