アプリの中にグラフやチャートを描く機会は多いです。スマホアプリはもちろんのこと、タブレットアプリのように表示できる領域が大きいと、細かい数字を並べるよりもグラフを使った方が効果的に情報を見せられます。

今回はそんなグラフやチャートを描くのに便利なライブラリHighchartsの使い方を紹介します。

Highchartsの導入方法

Highchartsを使うには、2つの方法があります。

  1. CDNを使う方法
  2. npmを使う方法

1. CDNを使う方法

CDNを使う場合は、HTMLファイルの中で以下のようにscriptタグを記述します。

<script src="https://code.highcharts.com/highcharts.js"></script>

2. npmを使う方法

npmを使う場合は、以下のコマンドをターミナルで実行します。

npm install highcharts --save

折れ線グラフの作成手順

折れ線グラフの例

折れ線グラフを作成するには、以下の手順で行います。

  1. HTMLファイルにグラフを表示するための要素を追加する。
  2. JavaScriptでグラフのオプションを設定する。

1. HTMLファイルにグラフを表示するための要素を追加する

以下のようなHTMLを記述します。

<figure class="highcharts-figure">
  <div id="container"></div>
  <p class="highcharts-description">
    Basic line chart showing trends in a dataset. This chart includes the
    <code>series-label</code> module, which adds a label to each line for
    enhanced readability.
  </p>
</figure>

ここで、<div id="container"></div>の部分がグラフを表示する場所になります。

2. JavaScriptでグラフのオプションを設定する

次に、JavaScriptでグラフのオプションを設定します。例えば、以下のようなコードを書きます。

Highcharts.chart('container', {
  // グラフのオプションを設定する
});

オプションでは、グラフのタイトル、軸ラベル、データなどを設定します。

options はグラフの描画設定ですが、設定できる内容は実に多様です。折れ線グラフの場合は、以下のキーを指定します。

  • title
    グラフのタイトル
  • subtitle
    グラフのサブタイトル
  • yAxis
    縦軸の設定
  • xAxis
    横軸の設定
  • legend
    凡例の設定
  • plotOptions
    グラフのオプション
  • series
    グラフのデータ
  • responsive
    レスポンシブデザインの設定
  • responsive.rules
    レスポンシブデザインのルール
  • responsive.rules.condition
    レスポンシブデザインの条件
  • responsive.rules.chartOptions
    レスポンシブデザインのオプション

以下はその設定例です。

{
    title: {
        text: "U.S Solar Employment Growth",
        align: "left"
    },
    subtitle: {
        text: "By Job Category. Source: <a href="https://irecusa.org/programs/solar-jobs-census/" target="_blank">IREC</a>.",
        align: "left"
    },
    yAxis: {
        title: {
            text: "Number of Employees"
        }
    },
    xAxis: {
        accessibility: {
            rangeDescription: "Range: 2010 to 2020"
        }
    },
    legend: {
        layout: "vertical",
        align: "right",
        verticalAlign: "middle"
    },

    plotOptions: {
        series: {
            label: {
                connectorAllowed: false
            },
            pointStart: 2010
        }
    },

    series: [{
        name: "Installation & Developers",
        data: [43934, 48656, 65165, 81827, 112143, 142383,
                171533, 165174, 155157, 161454, 154610]
    }, {
        name: "Manufacturing",
        data: [24916, 37941, 29742, 29851, 32490, 30282,
                38121, 36885, 33726, 34243, 31050]
    }, {
        name: "Sales & Distribution",
        data: [11744, 30000, 16005, 19771, 20185, 24377,
                32147, 30912, 29243, 29213, 25663]
    }, {
        name: "Operations & Maintenance",
        data: [null, null, null, null, null, null, null,
                null, 11164, 11218, 10077]
    }, {
        name: "Other",
        data: [21908, 5548, 8105, 11248, 8989, 11816, 18274,
                17300, 13053, 11906, 10073]
    }],

    responsive: {
        rules: [{
            condition: {
                maxWidth: 500
            },
            chartOptions: {
                legend: {
                    layout: "horizontal",
                    align: "center",
                    verticalAlign: "bottom"
                }
            }
        }]
    }
}

マウスオーバーで情報を表示できます。こうしたインタラクティブ性もHighchartsの特徴です。

Highchartsで描けるグラフの種類

Highchartsでは、様々なグラフやチャートを描くことができます。ここでは、その一部を紹介します。

  1. 円グラフ
  2. コンテキストの追加
  3. ベン図
  4. ドロー
  5. ウォーターフォール図
  6. ピラミッド図
  7. ボックスプロット
  8. レーダーチャート
  9. 3Dチャート
  10. 地図

これ以外にも、多くのグラフやチャートを描くことができます。詳しくは、Highchartsのデモページを参照してください。

1. 円グラフ

円グラフの例

2. コンテキストの追加

コンテキストの追加の例

3. ベン図

ベン図の例

4. ドロー

ドローの例

5. ウォーターフォール図

ウォーターフォール図の例

6. ピラミッド図

ピラミッド図の例

7. ボックスプロット

ボックスプロットの例

8. レーダーチャート

レーダーチャートの例

9. 3Dチャート

3Dチャートの例

10. 地図

地図の例

Highchartsの料金プラン

Highchartsは、個人利用は無料で使うことができます。ただし、商用利用の場合は有料となります。料金プランは複数用意されているので、Highchartsの料金ページを確認してください。

まとめ

Highchartsを使えば、様々なグラフやチャートを簡単に描くことができます。一度使い方を覚えてしまえば、ほとんどのユースケースに対応できるでしょう。

データをグラフ化することで、視覚的に理解しやすくなります。データの可視化が必要な場面では、ぜひHighchartsを活用してみてください。

Interactive charting library | Highcharts