1

任何人都可以帮忙吗?我试图在我的折线图的 x 轴上绘制时间。对 JSON 和 PHP 来说是全新的,并且在这方面存在真正的问题。

目前 y 轴描绘了“阅读”:

    d3.json('getdata.php',function (jsondata) { 
    var data = jsondata.map(function(d) { return d.reading; }); 

    var x = d3.scale.linear().domain([0, data.length]).range([0, width]);
    var y = d3.scale.linear().domain([0, d3.max(jsondata, function(d) { 
    return parseInt(d.reading); })]).range([height,0]);

“getdata.php”的输出格式如下:

[{"reading":"10","Time":"2012-11-01 00:00:00"},{"reading":"10.2","Time":"2012-11-01 00:02:00"}......

如果我改变,我会得到一个解析错误:

     var data = jsondata.map(function(d) { return d.reading; }); 

     var data = jsondata.map(function(d) { return d.Value; }); 

我知道这似乎是一个非常简单的问题,但我如何返回“阅读”和“时间”?

也非常感谢有关如何格式化/解析 DateTime 以仅描述时间的任何帮助?

4

1 回答 1

1

实际上,您无需执行任何操作即可返回读数和时间,您的 JSON 对象已经采用这种形式。也许如果你以另一种形式看到它,你就会明白我的意思:

[{"reading":"10","Time":"2012-11-01 00:00:00"},{"reading":"10.2","Time":"2012-11-01 00:02:00"}

这是 JavaScript 将如何看待它:

[
  {
    reading: "10",
    Time: "2012-11-01 00:00:00"
  },
  {
    reading: "10.2",
    Time: "2012-11-01 00:02:00"
  }
];

如果将其传递给,则可以通过和.data()访问各个属性。d.readingd.Time

对于您的电话d3.max,我只是+d.reading用来将读数转换为 int - 要么,要么确保提供 radix: parseInt(d.reading, 10)

于 2012-12-13T07:48:13.960 回答