【问题标题】:Chart min max values from each given day using crossfilter and dc.js使用 crossfilter 和 dc.js 绘制每天给定日期的最小值最大值
【发布时间】:2016-03-24 08:10:09
【问题描述】:

我有一个看起来像这样的数据集,我想制作一个折线图,其中包含每天的最高和最低温度(每天有多个读数)。

[..., 
{datetime: '21 Feb...', surface_temperature:21.5},
{datetime: '21 Feb...', surface_temperature:21.9},
{datetime: '21 Feb...', surface_temperature:25.5},
...
{datetime: '22 Feb...', surface_temperature:23.5},
....
]

如何使用 crossfilter 获得 surface_temperature 的最小值和最大值?

【问题讨论】:

    标签: javascript d3.js dc.js crossfilter


    【解决方案1】:

    可能最容易使用像 Reductio 这样的帮助程序库,它将为这些和其他聚合生成 reduce 函数。

    如果您想手动执行此操作,dc.js FAQ 对此主题进行了相当广泛的讨论。正确地进行增量聚合并不容易。

    【讨论】:

    • 免责声明:我写了Reducio,所以我的推荐可能有偏见;-)
    • 我的数据集有多个 surface_temp 值,具体取决于时间。我想每天获得三个标量(最小值、最大值和中值)。按照 Reductio 上的文档,我有:reductio().min(...).max(...).median(...) 并为 dc.js 图表指定了 valueAccessor,但它只显示中位数,控制台会抛出警告 VALUELIST accessor is being overwritten by median aggregation
    • 基本正确。它会触发警告,但应该没问题。如果您想避免警告,请使用reductio().min(function (d) { return d.surface_temperature; }).max(true).median(true) (dateGrp);
    • 如果我需要一个多折线图(最小值、最大值和中值各一行),它是如何工作的?现在我只看到一行。
    • 您需要在图表上为您的第一行使用值访问器。然后使用相同的组和不同的值访问器在 dc.js 图表上创建额外的“堆栈”。 github.com/dc-js/dc.js/blob/master/web/docs/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 2014-10-17
    • 2020-05-10
    • 2021-08-05
    • 2021-09-01
    相关资源
    最近更新 更多