何かいいグラフ書くもの無いかなーと探してたら、見つけたのでちょっと紹介させていただきます。
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的に良いものができそうです。今度はそっちの紹介でもしようかなー。