何かいいグラフ書くもの無いかなーと探してたら、見つけたのでちょっと紹介させていただきます。
Highcharts
とりあえず、サンプルソースはこちら
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Highcharts Example</title> <script type="text/javascript" src="../../js/jquery-1.4.2.min.js"></script> // highcharts.js読み込み <script type="text/javascript" src="../../js/highcharts.js"></script> // デザイン用js読み込み。無くてもOK <script type="text/javascript" src="../../js/themes/gray.js"></script> // 詳しくは見れてないですが、コレも必要 <script type="text/javascript" src="../../js/modules/exporting.js"></script> <script type="text/javascript"> var chart; $(function() { chart = new Highcharts.Chart({ chart: { // グラフを表示する領域を指定 renderTo: 'container', // グラフのタイプを指定 defaultSeriesType: 'bar' }, title: { text: 'Historic World Population by Region' }, subtitle: { text: 'Source: Wikipedia.org' }, xAxis: { // グラフの縦軸の項目名を指定 categories: ['Africa', 'America', 'Asia', 'Europe', 'Oceania'], title: { text: null } }, yAxis: { min: 0, title: { text: 'Population (millions)', align: 'high' } }, tooltip: { // グラフにマウスを乗せたときのtooltipの表示を指定 formatter: function() { return ''+ this.series.name +': '+ this.y +' millions'; } }, plotOptions: { bar: { dataLabels: { enabled: true } } }, legend: { layout: 'vertical', align: 'right', verticalAlign: 'top', x: -100, y: 100, floating: true, borderWidth: 1, backgroundColor: '#FFFFFF', shadow: true }, credits: { enabled: false }, // 表示したいデータをJSON形式で指定 series: [{ name: 'Year 1800', data: [107, 31, 635, 203, 2] }, { name: 'Year 1900', data: [133, 156, 947, 408, 6] }, { name: 'Year 2008', data: [973, 914, 4025, 732, 34] }] }); }); </script> </head> <body> <div id="container" style="width: 800px; height: 400px; margin: 0 auto"></div> </body> </html>
デモはこちら
こんな感じに、簡単にできます。
オプションの簡単な説明をすると、まず
22行目
グラフのタイプを指定します。
"line"と指定すると折れ線グラフになったり、"colum"と指定すると上下の棒グラフになります。
73行目
seriesというオブジェクトにJSON形式でデータを定義してあげます。
nameとdataというKEY値で指定してあげてください。
横軸のメモリとかは、データの大きさによって自動でスケールアウトしたり、
グラフの項目名をクリックすると、その項目を非表示にできたりとかなりいろいろできるので
おすすめです。今回は紹介していないですが、自動で時間経過に応じてグラフを描画するなんてことも
できるので、かなりUI的に良いものができそうです。今度はそっちの紹介でもしようかなー。