システム開発
投稿日:

【コーディング屋のネタ帳】データ可視化はこれで決まり!円グラフ作成に役立つJavaScriptライブラリ5選

最近、データのビジュアル化が注目されており、Webサイトでもさまざまな形式のグラフが使われるようになりました。たとえば、会社の予算配分をわかりやすく示したり、製品の市場シェアを視覚的に伝えたりする場面でよく利用されています。こうしたグラフは、データの割合や構成を簡単に把握できる点で、多くの人にとって便利なツールとなっています。

今回のテーマは「円グラフ」。前回の記事で紹介した棒グラフとは異なり、全体に対する各データの割合を直感的に示すのに適した円グラフにフォーカスし、その特徴や活用方法、さらに円グラフを簡単に作成できるJavaScriptライブラリについてご紹介します。

この記事は、次のような人に向けて書いています。

  • Webサイトにグラフを取り入れたい新人エンジニア
  • 今使っているライブラリを別のものに変えようと考えている中級エンジニア
  • デザインにこだわったグラフを探しているWebデザイナー

このシリーズでは、グラフライブラリの特徴や使い方をサンプルコード付きでわかりやすく紹介していくので、ぜひ参考にしてください!

円グラフとは?

円グラフは、データを円の形に分けて表現するグラフです。それぞれのセグメントが全体に対する割合を示していて、パッと見ただけでどの部分がどれくらいの大きさかがわかります。たとえば、ケーキをいくつかのサイズに切り分けたようなイメージですね。

棒グラフが向いている活用例

円グラフが活躍するのは、こんな場合です:

  • 割合や比率を見せたいとき:全体に対してどのくらいの割合かを視覚的に示すのにピッタリです。例: 市場シェア、予算の内訳、アンケート結果
  • データが少ないとき:データの項目が多すぎない場合に最適です(5–6個くらいまでが理想)。
    例: 部門別売上構成、ユーザー層の割合。
  • ざっくり全体感を伝えたいとき:データ全体を一目で理解してほしい場合に便利です。

円グラフの種類

円グラフにもいくつかバリエーションがあります。

  • スタンダードな円グラフ:円をいくつかのセグメントに分ける一般的なタイプ。
  • ドーナツグラフ:真ん中が空いているタイプで、複数の円を重ねて表現することもできます。
  • 半円グラフ:円の半分だけを使って、スペースを節約しつつ情報を伝えます。

円グラフのメリットとデメリット

メリット

  • 割合を強調しやすく、視覚的にわかりやすい。
  • 見た目が直感的で、データの全体像が一目でわかります。
  • シンプルなデザインなので、インフォグラフィックやプレゼン資料にも最適です。

デメリット

  • 項目が多すぎるとき:セグメントが多くなると、ごちゃごちゃして見づらくなります。
  • 正確な比較が必要なとき:細かい数値の差を伝えたい場合は、棒グラフや折れ線グラフの方が適しています。
  • 負の値やゼロを含むデータ:円グラフは正の割合を示すのが基本なので、負の値やゼロには向いていません。
  • 過剰な装飾:3D効果や派手な色使いなどを加えすぎると、各部分の大きさが視覚的に歪んで見えたり、情報の正確性が損なわれたりすることがあります。

JavaScriptライブラリを選ぶ際のチェックポイント

グラフをWebサイトに表示するためのライブラリは数多くありますが、選び方を間違えると使いづらかったり、目的に合わなかったりすることがあります。ライブラリ選定の際には下記6つのポイントをチェックすることをおすすめします。

  1. 導入のしやすさ
    初心者でもすぐに使えるかどうかは重要です。CDNを使って簡単に読み込めるものや、設定が少なくても動作するライブラリを選ぶとよいでしょう。
  2. カスタマイズ性
    デザインや色、アニメーションなどを柔軟に変更できるかを確認しましょう。ブランドやデザインテーマに合わせた調整が必要な場合は、カスタマイズ性の高いものがおすすめです。
  3. レスポンシブ対応
    スマホやタブレットなど、画面サイズが異なるデバイスでもきれいに表示されるかをチェックしましょう。特に、ビジネスサイトではモバイル対応が重要です。
  4. パフォーマンス
    表現するグラフにもよりますが、大規模データを扱う場合、表示速度やパフォーマンスも気にする必要があります。特にリアルタイムデータを表示する用途では、軽量で高速なライブラリが求められます。
  5. サポートとドキュメント
    公式サイトやGitHubでのサポート状況や、ドキュメントの充実度を確認しましょう。使い方がわからないときに参考になる情報があるかどうかは重要です。
  6. ライセンスと利用料
    利用規約やライセンス形態も確認しておきましょう。商用利用が可能かどうか、無料で使えるか、有料プランが必要かなどを事前にチェックすることが大切です。

おすすめライブラリ紹介

1 Chart.js

  • 公式URL: https://www.chartjs.org/
  • 特徴: Chart.jsは、シンプルさと使いやすさが特徴のライブラリです。このライブラリは、レスポンシブ対応が標準で、スマホやタブレットでもきれいに表示できます。さらに、ドーナツグラフやアニメーション付きの円グラフを簡単に作成できるため、初心者でもスムーズに利用できます。
  • メリット
    ・初心者にも扱いやすく、導入が簡単。
    ・プラグインを使えば拡張性が高い。
    ・標準でレスポンシブ対応しており、モバイルでもきれいに表示可能。
  • デメリット
    ・デザインのカスタマイズには少し工夫が必要。
    ・複雑なインタラクティブ機能には向いていない
    ・大規模データの処理には不向き。

2 D3.js

  • 公式URL: https://d3js.org/
  • 特徴: D3.jsは、高度なカスタマイズ性とデータの動的な可視化に特化したライブラリです。自由度が非常に高く、ドーナツグラフやアニメーションも自在に作成できます。ただし、その分、学習コストが高く初心者には少し難しいかもしれません。
  • メリット
    ・大規模データや複雑なインタラクションに対応可能。
    ・デザインの自由度が非常に高い。
    ・リアルタイムデータの可視化も可能。
    ・オープンソースで柔軟性がある。
  • デメリット
    ・学習コストが高く、JavaScriptの知識が必要。
    ・レスポンシブ対応は手動で設定が必要。

3 ApexCharts

  • 公式URL: https://apexcharts.com/
  • 特徴: ApexChartsは、インタラクティブなグラフを簡単に作成できるライブラリです。特にモダンでスタイリッシュなデザインが特徴で、ドーナツグラフや円グラフの表示に非常に便利です。また、ライブアップデート機能も搭載されており、サーバーからのデータ更新をリアルタイムでグラフに反映することが可能です。これにより、動的なデータビジュアライゼーションを容易に実現できます。
  • メリット
    ・学習コストが低く、直感的に利用できる
    ・ライブアップデート機能を標準搭載
    ・大規模データにも対応可能
    ・レスポンシブ対応が簡単にできる
  • デメリット
    ・複雑なカスタマイズには多少の知識が必要
    ・サイズが他の軽量ライブラリよりやや大きい

4 Google Charts

  • 公式URL: https://developers.google.com/chart/
  • 特徴: Google Chartsは、クラウドベースで動作する信頼性の高いライブラリです。基本的な円グラフから高度なデータビジュアライゼーションまで対応可能で、GoogleのAPIとの連携が容易です。ただし、デザインの自由度は他のライブラリに比べてやや制限されます。
  • メリット
    ・無料で商用利用できる。
    ・簡単な設定で高品質なグラフを作成可能。
    ・Googleスプレッドシートとの連携が強力で、外部データソースの取り込みが容易。
    ・標準でレスポンシブ対応している
  • デメリット
    ・オフラインでは利用しづらい (GoogleのCDNに依存)。
    ・カスタマイズの柔軟性はD3.jsよりも低い。
    ・リアルタイム更新には追加の設定が必要。

5 Chartist.js

  • 公式URL: https://gionkunz.github.io/chartist-js/
  • 特徴: Chartist.jsは、軽量でシンプルな設計のライブラリです。CSSでのスタイリングが可能で、モバイル向けのレスポンシブデザインも簡単に実現できます。そのため、小規模なプロジェクトやシンプルな円グラフを作成したい場合に最適です。
  • メリット
    ・軽量で高速に動作する。
    ・モバイル対応が簡単で、レスポンシブデザインに強い
    ・シンプルなコードで実装可能。
    ・小規模データの可視化に向いている
  • デメリット
    ・複雑なグラフ作成には不向き
    ・D3.jsやApexChartsと比較するとカスタマイズ性に制約がある。
    ・大規模データの処理には適していない

ライブラリ比較表

前述のライブラリ選定ポイントをまとめた表は下記のとおり

名称導入のしやすさカスタマイズ性レスポンシブ対応パフォーマンスサポートとドキュメントライセンス
Chart.js高い中程度標準対応軽量・高速公式ドキュメント充実MITライセンス
D3.js中程度非常に高い手動対応大規模データ対応可能豊富なサンプルと解説BSDライセンス
ApexCharts高い高い標準対応優れたリアルタイム対応公式ドキュメント豊富MITライセンス
Google Charts高い中程度標準対応高速Googleの公式サポート無料
Chartist.js高い低い標準対応軽量・高速コミュニティベースMITライセンス

サンプルデータを使った導入例

今回紹介した各ライブラリを使って、同じ条件のサンプルデータから円グラフを表示する手順を作成してみました。それぞれの特徴を活かしたオプションもつけてみたので参考にしてくださいね。

サンプルデータ:企業の部門ごとの収益割合

部門収益割合(%)
営業40
マーケティング25
研究開発15
運営10
カスタマーサポート10

Chart.js

導入手順

1.CDNリンクの追加 (HTMLの<head>内に記述)

2.HTMLとJavaScriptコード

D3.js

Chrat.jsと同じような機能を搭載させようとすると、D3.jsではコードが長くなります。

導入手順

1.CDNリンクの追加 (HTMLの<head>内に記述)

2.CSSを追加
3.HTMLとJavaScriptコード

ApexCharts

上記2つのグラフに加えて、グラデーションも追加したコードです。

導入手順

1.CDNリンクの追加

2.HTMLとJavaScriptコード

Google Charts

Google Chartsでは、データをCSVダウンロード可能なグラフを作成してみました

導入手順

1.CDNリンクの追加 (HTMLの<head>内に記述)

2.JavaScriptを追加
3.HTML

Chartist.js

Chartist.jsでは、少なくとも簡単には要素の色は指定できないようでした。

導入手順

1.CDNリンクの追加 (HTMLの<head>内に記述)
2.CSSの設定
2.HTMLとJavaScriptを追加

まとめ

この記事では、円グラフの基本から利用シーン、ライブラリの選び方、そしておすすめライブラリの特徴と比較表までを紹介しました。

円グラフは、データを視覚的に伝える有効な手段ですが、適切な場面で使うことが重要です。この記事で紹介したライブラリを活用して、魅力的でわかりやすいデータビジュアライゼーションを作成してみてください。

次回の記事では、「折れ線グラフ」の特徴とおすすめライブラリについて解説する予定です。お楽しみに!