2015年12月31日木曜日

GoogleChart : 時刻入りのグラフを描く

Arduinoから温度を取ってAndroidを中継しデータベースに入れてあります。これをGoogleChartでグラフ表示する方法です。
横軸が時刻が意外に苦労しました。
参考
http://nvnote.com/google-charts-create-graph-xaxis-date/

コントローラ
app]$ vi Controller/SensorsController.php

public function graph($datetime = '2015-12-17') {
                $this->Sensor->recursive = 0;
                $date=date("Y-m-d",strtotime($datetime));
                $this->paginate = array(
                        'conditions'=>array(
                                'Sensor.created BETWEEN ? AND ?' => array($date." 00:00:00", $date." 23:59:59")
                        ),
                        'order' => array('id' => 'asc'),
                        'limit'=>100000,
                );


                $this->set('sensors', $this->Paginator->paginate());
        }
※引数は自由に変更。date関数がちょうどいいかも
findの時、createdの型を指定して範囲を指定し持ってくる
参考
http://d.hatena.ne.jp/YamamoriSansa/20101101/1288611148

ビュー
app]$ vi View/Sensors/graph.ctp
[挿入コード]
コード
注意
・カラムの型をdatetimeにする
 data.addColumn('datetime', '日時');

・created の型が 2015-12-31 17:10:11のようにハイフンで区切られている。Date型が2015/12/31 17:10:11なので文字を変換する。

参考
http://www.ajaxtower.jp/js/date_class/index1.html

表示するとこんな感じ

0 件のコメント:

コメントを投稿