Sparklineを使ってミニグラフを作る
Sparklineは、ずいぶん前にid:elfさんが言及されていたグラフ作成ライブラリです。
で、「別途取得したAmazonランキングの直近1週間分のデータをグラフにする」というスクリプトを書いてみました。データはSQLiteに格納してあり、テーブルamazon_rankingは2つのカラム
- データ取得日時(dt。「年月日時分秒」形式)
- ランキング情報(rank)
を持っています。Do You PHP?のEXPERIENCEにデモ環境を用意しましたので、気になる方はどうぞ。なお、データは毎時0分頃に更新されていますので、見るタイミングによってグラフが変わります。
<?php require_once('/path/to/Sparkline_Line.php'); $dsn = 'sqlite:/path/to/ranking_data'; try { $db = new PDO($dsn); $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); echo ' error code: ' . $e->getCode(); exit; } $stmt = $db->prepare('SELECT * FROM amazon_ranking WHERE dt > ? ORDER BY dt ');$target_dt = date('YmdHis', time() - (60 * 60 * 24 * 7)); $stmt->bindParam(1, $target_dt); try { $stmt->execute(); } catch (PDOException $e) { exit; } $sparkline = new Sparkline_Line(); $sparkline->SetDebugLevel(DEBUG_NONE); $best = array(); $bes['idx'] = 0; $bes['rank'] = -PHP_INT_MAX; $worst = array(); $worst['idx'] = 0; $worst['rank'] = 0; $last = array(); $last['idx'] = 0; $last['rank'] = 0; $data = array(); $cnt = 0; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $current_rank = -$row['rank']; if ($best['rank'] < $current_rank) { $best['idx'] = $cnt; $best['rank'] = $current_rank; } if ($worst['rank'] > $current_rank) { $worst['idx'] = $cnt; $worst['rank'] = $current_rank; } $last['idx'] = $cnt; $last['rank'] = -$current_rank; $sparkline->SetData($cnt, $current_rank); $cnt++; } $sparkline->SetColorHtml('ltgreen', '#00CC00'); $sparkline->SetFeaturePoint($worst['idx'], $worst['rank'], 'red', 5, -$worst['rank'], TEXT_TOP, FONT_2); $sparkline->SetFeaturePoint($best['idx'], $best['rank'], 'blue', 5, -$best['rank'], TEXT_TOP, FONT_2); $sparkline->SetFeaturePoint($last['idx'], $last['rank'], 'ltgreen', 5); $sparkline->SetLineSize(2); $sparkline->RenderResampled(120, 20); $sparkline->Output();
Blogパーツとか、ちょっとしたグラフ化をするには手頃なライブラリです。もう開発は止まっている(最新ニュースが2005年6月)ようですが、まあ、大がかりなものではないので、最悪ソースを追えば良いかな、と。
え?対象商品は当然。。。

- 作者: 下岡秀幸,道端良,畑勝也
- 出版社/メーカー: 秀和システム
- 発売日: 2006/11/27
- メディア: 単行本
- 購入: 4人 クリック: 39回
- この商品を含むブログ (33件) を見る