グラフを簡単に描画する「Chart.js」について

【結論】

・Chart.jsを利用する事で、簡単にグラフ表示の機能を実装する事ができる

CDNなどでライブラリを読み込み、ページにスクリプトを埋め込んで、グラフ描画する場所にcanvas要素を記述する事で実装できる

スクリプトで定義している項目や値を、コントローラーから渡す事で、動的にグラフを生成する事が可能

【目次】

【本題】

グラフ機能を簡易に実装できる「Chart.js」について

「Chart.js」とは、JavaScriptで動作するシンプルかつモダンなグラフを簡単に実装できるライブラリです。

Chart.js | Open source HTML5 Charts for your website

公式サイトに掲載されていますが、下記の様なグラフを実装する事ができます。

Chart.js | Samples

実装手順1:本体のインストールする

実装の方法ですが、まずは本体をインストールする必要があります。

CDNでも配信されており、Railsであれば、下記の様にして読み込む事も可能です。

<%= javascript_include_tag 'https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js' %>

実装手順2:スクリプトを埋め込む

次にページに、どの様にグラフを描画するのかをスクリプトに定義して、埋め込みます。

公式サイトだと、下記のコードが掲載されていました。

<script>
var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ["赤", "青", "黄色", "緑", "紫", "橙"],
        datasets: [{
            label: '得票数',
            data: [12, 19, 3, 5, 2, 3],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255,99,132,1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]
    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:true
                }
            }]
        }
    }
});
</script>

実装手順3:グラフを描画する位置にcanvas要素を記述する

最後にグラフを描画する位置にcanvas要素を記述します。

<canvas id="myChart" width="400" height="400"></canvas>

これにより、実装されたグラフが下記になります。

スクリプトで定義している項目や値などをコントローラーで取得したデータに置き換えれば、動的にグラフを生成する事が可能です。

参考情報

Chart.js · Chart.js 日本語ドキュメント