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、読み取り値を int に変換するために使用+d.readingするか、必ず radix: を指定しますparseInt(d.reading, 10)

于 2012-12-13T07:48:13.960 に答える