グラフ(横棒グラフ)
#! /usr/local/bin/ruby
title = '月別売上' #グラフタイトル
data = [ #グラフ作成用データ
['1月', 2103000],
['2月', 2336000],
['3月', 2410000],
['4月', 1901000],
['5月', 2898000],
['6月', 2360000],
['7月', 3150000],
['8月', 2145000],
['9月', 2258000],
['10月', 2801000],
['11月', 1900000],
['12月', 2309000] ]
print "Content-type: text/html; charset=UTF-8\n\n"
print <<END #HTML出力
<html>
<head>
<title>グラフ(横棒グラフ)</title>
</head>
<body>
<table width="90%" align="center" border="1" rules="none" bordercolor="#000099">
<th colspan="3" style="font-size:12px;font-weight:normal">#{title}</th>
END
maxlen = 0
max = 0
data.each { |k, v|
if k.size > maxlen #文字数最大
maxlen = k.size
end
if v > max #データ最大
max = v
end
}
data.each { |k, v| #グラフ作成
print "<tr>"
printf "<td width=\"%d\" align=\"right\" style=\"font-size:10px\">#{k}</td>", maxlen * 10
printf "<td><hr size=\"10\" color=\"#339933\" align=\"left\" width=\"%d%%\"></td>", v * 100 / max
printf "<td width=\"%d\" style=\"font-size:10px\">\\#{v}</td>", max.to_s.size * 10
print "</tr>\n"
}
print <<END
</table>
</body>
</html>
END
exit
〔 実行する 〕