imgタグとPHPでグラフ作成
2014/07/03
プラグインやライブラリを使わずにグラフを作る
機会があったのでメモ。
■サンプル
http://sample.taitan916.info/graph2/
■ソース
<?php
$max_a = 0;
for ($i=0; $i<5; $i++) {
$graph_val[$i] = rand(1,50);
$max_a += $graph_val[$i]; //グラフの値の合計値を出す。
}
$max_b = max($graph_val); //グラフの値の中で最大値を出す。
?>
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="UTF-8">
<style>
.graph {
min-width:300px; min-height:300px; border:solid 1px;
}
</style>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<title>graph</title>
</head>
<body>
<h1>graph</h1>
<table>
<tr>
<td class="graph">
■本当の割合を出したもの<br>
<?php
for ($i=0; $i<5; $i++) {
echo "項目" . ($i+1) . ":{$graph_val[$i]}<br>
<img src='./image/graph.jpg' style='height:10px; width:" . (floor($graph_val[$i] / $max_a * 100)) . "%;'><br>";
}
?>
</td>
<td class="graph">
■最大の結果を100%にして出したもの<br>
<?php
for ($i=0; $i<5; $i++) {
echo "項目" . ($i+1) . ":{$graph_val[$i]}<br>
<img src='./image/graph.jpg' style='height:10px; width:" . (floor($graph_val[$i] / $max_b * 100)) . "%;'><br>";
}
?>
</td>
</tr>
</table>
</body>
</html>
■説明
簡単な縦棒のjpgを作ってwidthの%指定でグラフ化したもの。
元々%指定は、
(グラフの値 / グラフの値の合計 * 100)
で出してたけど、かなりの大差が付かないと平べったいグラフに
なるから、グラフの値の最大値を分母にしたほうがいいかも、
と上司より助言を頂いて作ったもの。
場合によって使い分ける。
関連記事
-
-
フォーム管理画面テンプレPHP
<?php ini_set( 'display_errors', 0 ); ...
-
-
エラー管理
<? /*エラー管理*/ //画面上にエラー表示させるかどうか。0⇒非表示 ...
-
-
PHPバージョンの確認
PHPでバージョンの確認をする際にphpinfo()を 使って調べてたけど、バー ...
-
-
画像をドラッグ&ドロップでアップロードする方法
画像を複数枚ドラッグ&ドロップでアップロードしたかった。だいぶ前にdro ...
-
-
FormDataを使ったAjax通信がiPhoneのみエラー
FormDataオブジェクトを使用したAjax通信するシステムがあり、PCやAn ...
-
-
複数のajax処理の結果をまとめて表示
同時にajax処理を行う際、挙動やコードの書き方に悩まされることが多い。例えばA ...
-
-
google map apiとPHPを組み合わせて複数マーカーとウィンドウを連携させる
やりたかった事は、 mysqlから経度緯度、マーカー名、マーカーIDを持ってきて ...
-
-
PHPでクエリ内容を取得する
エラーログを確認している際によく分からない動作に なっているところがあった。 ペ ...
-
-
Jcropを使ってブラウザ上で画像を範囲指定して切り抜き(トリミング)
やりたかった事は、画像をアップロードして必要な部分のみを範囲指定してもらい、指定 ...
-
-
CRUDのfunction化(管理画面)
<? /* よく使うような管理画面(CRUD?)をfunctionで分けて ...