【问题标题】:Dygraphs: no ticks and tick labels on x axisDygraphs:x 轴上没有刻度和刻度标签
【发布时间】:2013-07-07 11:21:55
【问题描述】:

我有 30 分钟的数据,粒度为 1 秒,时间值采用 unix 时间戳。 Dygraph 在 x 轴上根本不显示刻度和刻度标签,但是,当我将鼠标悬停在线时,会出现一个带有正确日期和时间的图例。我使用以下代码,但它没有帮助。

    axes: {
        x: {
            axisLabelFormatter: function(d) {
                return d.strftime('%H-%M');
            }
        }
    }

如何让 Dygraph 使用我的数据在 x 轴上显示刻度和刻度标签?

【问题讨论】:

  • 我看到了这个例子,但我不明白如何将它应用到我的情况。我认为答案是使用“ticker”选项,但我无法弄清楚这样做的正确方法是什么。
  • 为什么不将代码粘贴到 jsfiddle 中
  • 在这里。 jsfiddle.net/AlexanderSh/CUgsM 我知道,形成这样的数据(每个记录都使用 new Date())看起来很难看,而且是不好的做法,但是这段代码是在脚本中生成的,它会生成所有其他 http 代码,所以它又快又脏。
  • 你的代码的问题是你所有的日期都是倒序的。颠倒你的清单(把第一次放在第一位),一切都应该工作。当 CSV 输入出现故障时,dygraphs 会记录警告。它应该对原生格式数据做同样的事情:

标签: javascript dygraphs


【解决方案1】:

Dygraph 中似乎存在一个错误,因为如果值以相反的顺序显示并以数组数组的形式呈现,它不会显示 x 轴。 但是,如果数据以 CSV 格式存在,它似乎可以工作,所以只需添加

.reduce(function(a,b){return ""+a+"\n"+b;})

到数组序列的末尾。

所以您的数据线将如下所示:

[new Date(1373197702 * 1000), 105487872],[new Date(1373197701 * 1000), 105401856] ].reduce(function (a, b) { return ""+a+"\n"+b; }),

http://jsfiddle.net/CUgsM/1/

【讨论】:

  • 这不是错误——dygraphs 期望数据按排序顺序排列。此修复“有效”,因为使用 CSV 输入,dygraphs 将为您对数据进行排序并记录有关传递错误数据的警告。
猜你喜欢
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
相关资源
最近更新 更多