グラフ(横棒グラフ)
#! /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=Shift_JIS\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
〔 実行する 〕