ゲージチャートライブラリ比較

4つのライブラリで同じデータを表示し、実装方法とスタイルを比較

このページでは、Apache ECharts・Plotly.js・ApexCharts・Nivoを使ったゲージチャート(Gauge Chart)の実装パターンをインタラクティブなデモとコードで確認できます。

📊 使用しているサンプルデータ

サーバーのリソース使用率を想定した3指標のデータを使用しています。各ライブラリのデモでは「CPU使用率 72%」を代表値として表示します。

1. Apache ECharts (echarts-for-react)

Baiduが開発した高機能チャートライブラリ。type: 'gauge' でネイティブのゲージチャートを簡単に実装できる。

✓ ネイティブゲージ対応✓ 非常に高いカスタマイズ性✓ アニメーション付き

チャートを読み込み中...

特徴: type: 'gauge' を指定するだけで半円形ゲージが描画される。progress.show でプログレスバーを追加でき、複数ゲージの並列表示やグラデーションなど高度なカスタマイズが可能。
tsx
'use client';
import dynamic from 'next/dynamic';
const ReactECharts = dynamic(() => import('echarts-for-react'), { ssr: false });

export function EChartsGauge() {
  const option = {
    series: [{
      type: 'gauge',
      min: 0,
      max: 100,
      progress: { show: true, width: 18 },
      axisLine: { lineStyle: { width: 18 } },
      axisTick: { show: false },
      splitLine: { length: 15, lineStyle: { width: 2 } },
      axisLabel: { distance: 25 },
      pointer: { show: true },
      detail: {
        valueAnimation: true,
        formatter: '{value}%',
        fontSize: 24,
      },
      data: [{ value: 72, name: 'CPU使用率' }],
    }],
  };
  return <ReactECharts option={option} style={{ height: 360 }} />;
}

🤖 AIプロンプトテンプレート

React + Tailwind CSSで、Apache EChartsを使ったゲージチャートを実装してください。
- 使用ライブラリ: echarts-for-react の ReactECharts
- type: 'gauge' を使用
- 値: 72(CPU使用率)、range: 0〜100
- progress.show: true でプログレスバーを表示
- detail.formatter で値に「%」を付けて表示
- アニメーション付きで値を表示

⚠️ このプロンプトはあくまでたたき台です。AIの回答はモデルやバージョン、会話の文脈によって毎回異なります。意図通りに動かない場合は、条件を追記・修正してお使いください。

2. Plotly.js (react-plotly.js)

type: 'indicator'mode: 'gauge+number' でゲージと数値を同時表示。カラーゾーンと警告ラインの設定も容易。

✓ ゲージ+数値の同時表示✓ カラーゾーン設定✓ 警告ライン対応

チャートを読み込み中...

特徴: gauge.axis.range で最小・最大を指定し、steps でカラーゾーンを定義できる。KPIパネルとの相性がよく、数値とゲージを一体で見せたい場合に最適。SSRには非対応のためdynamic importが必要。
tsx
'use client';
import dynamic from 'next/dynamic';
const Plot = dynamic(() => import('react-plotly.js'), { ssr: false });

export function PlotlyGauge() {
  return (
    <Plot
      data={[{
        type: 'indicator',
        mode: 'gauge+number',
        value: 72,
        title: { text: 'CPU使用率', font: { size: 16 } },
        gauge: {
          axis: { range: [0, 100] },
          bar: { color: '#4f86c6' },
          steps: [
            { range: [0, 50],   color: '#e2f0fb' },
            { range: [50, 75],  color: '#b8d9f5' },
            { range: [75, 100], color: '#fde8e8' },
          ],
          threshold: {
            line: { color: '#ef4444', width: 4 },
            thickness: 0.75,
            value: 90,
          },
        },
        number: { suffix: '%' },
      }]}
      layout={{
        margin: { t: 60, b: 20, l: 40, r: 40 },
        height: 360,
        paper_bgcolor: 'transparent',
      }}
      config={{ displayModeBar: false }}
      style={{ width: '100%' }}
    />
  );
}

🤖 AIプロンプトテンプレート

React + Tailwind CSSで、Plotly.jsを使ったゲージチャートを実装してください。
- 使用ライブラリ: react-plotly.js(next/dynamicでSSR無効化)
- type: 'indicator'、mode: 'gauge+number' を使用
- 値: 72(CPU使用率)、range: 0〜100
- gauge.steps で0-50・50-75・75-100のカラーゾーンを設定
- threshold で警告ラインを90に設定
- number.suffix に「%」を表示

⚠️ このプロンプトはあくまでたたき台です。AIの回答はモデルやバージョン、会話の文脈によって毎回異なります。意図通りに動かない場合は、条件を追記・修正してお使いください。

3. ApexCharts (react-apexcharts)

type: 'radialBar' で円弧型のゲージを実装。series に0〜100のパーセンテージ値を渡すだけでシンプルに表示できる。

✓ 最小限のコードで実装✓ 複数指標の並列表示✓ ビジネス向けダッシュボード

チャートを読み込み中...

特徴: startAngle: -135endAngle: 135 で半円形ゲージになる。series を配列にすることで複数の指標を同一チャートに並列表示することも容易。SSRには非対応のためdynamic importが必要。
tsx
'use client';
import dynamic from 'next/dynamic';
const ApexChart = dynamic(() => import('react-apexcharts'), { ssr: false });

export function ApexGauge() {
  const series = [72];
  const options = {
    chart: { type: 'radialBar' as const },
    plotOptions: {
      radialBar: {
        startAngle: -135,
        endAngle: 135,
        hollow: { size: '60%' },
        dataLabels: {
          name: { fontSize: '16px', offsetY: -10 },
          value: {
            fontSize: '28px',
            formatter: (val: number) => `${val}%`,
            offsetY: 5,
          },
        },
      },
    },
    labels: ['CPU使用率'],
    colors: ['#4f86c6'],
  };
  return (
    <ApexChart
      type="radialBar"
      series={series}
      options={options}
      height={360}
      width="100%"
    />
  );
}

🤖 AIプロンプトテンプレート

React + Tailwind CSSで、ApexChartsを使ったゲージチャートを実装してください。
- 使用ライブラリ: react-apexcharts(next/dynamicでSSR無効化)
- type: 'radialBar' を使用
- series: [72](CPU使用率 72%)
- startAngle: -135、endAngle: 135 で半円形ゲージ
- dataLabels に名前と値(%付き)を表示
- hollow.size: '60%' で中央を空洞化

⚠️ このプロンプトはあくまでたたき台です。AIの回答はモデルやバージョン、会話の文脈によって毎回異なります。意図通りに動かない場合は、条件を追記・修正してお使いください。

4. Nivo (@nivo/pie)

Nivoには専用のゲージコンポーネントがないため、@nivo/pie の半円表示で擬似的にゲージを実現する。中央の値表示はカスタムレイヤーで追加する。

✓ デザイン重視✓ @nivo/pie を応用✓ カスタムレイヤー対応
72%
CPU使用率
特徴: startAngle: -90endAngle: 90 で半円に、innerRadius: 0.7 でドーナツ型にすることでゲージ風の表示を実現。Nivoの洗練されたデザインシステムで統一したい場合に有効。
tsx
'use client';
import { ResponsivePie } from '@nivo/pie';

// Nivoには専用のゲージコンポーネントがないため、
// @nivo/pie の半円表示で擬似的にゲージを実現する
export function NivoGauge() {
  const value = 72;
  const remaining = 100 - value;

  const data = [
    { id: 'value',     value,          color: '#4f86c6' },
    { id: 'remaining', value: remaining, color: '#e5e7eb' },
  ];

  return (
    <div style={{ height: 360, position: 'relative' }}>
      <ResponsivePie
        data={data}
        startAngle={-90}
        endAngle={90}
        innerRadius={0.7}
        padAngle={1}
        colors={d => d.data.color}
        enableArcLabels={false}
        enableArcLinkLabels={false}
        isInteractive={false}
        margin={{ top: 20, bottom: 0, left: 20, right: 20 }}
      />
      <div style={{
        position: 'absolute',
        bottom: '28%',
        width: '100%',
        textAlign: 'center',
      }}>
        <div style={{ fontSize: 32, fontWeight: 700 }}>{value}%</div>
        <div style={{ fontSize: 14, color: '#6b7280' }}>CPU使用率</div>
      </div>
    </div>
  );
}

🤖 AIプロンプトテンプレート

React + Tailwind CSSで、Nivoを使ったゲージチャートを実装してください。
- 使用ライブラリ: @nivo/pie の ResponsivePie
- startAngle: -90、endAngle: 90 で半円形に表示
- innerRadius: 0.7 でドーナツ型にしてゲージ風に見せる
- 値(72%)と残り(28%)の2スライスで構成
- 中央に値をabsolute配置のdivで表示
- arcLabels・arcLinkLabels は非表示

⚠️ このプロンプトはあくまでたたき台です。AIの回答はモデルやバージョン、会話の文脈によって毎回異なります。意図通りに動かない場合は、条件を追記・修正してお使いください。

ライブラリ比較

ライブラリゲージ対応カスタマイズ性学習コストおすすめ用途
Apache EChartsネイティブ(gauge)非常に高い多機能ダッシュボード・複数ゲージ
Plotly.jsネイティブ(indicator)データ分析・KPIパネル
ApexChartsネイティブ(radialBar)ビジネスダッシュボード・進捗表示
Nivo@nivo/pie で擬似実装デザイン重視のダッシュボード

選択のポイント

  • Apache ECharts: 複数ゲージの並列表示、グラデーション、アニメーションなど高度なカスタマイズが必要な場合に最適。JSONベースの設定で直感的に記述できる。
  • Plotly.js: indicator タイプでゲージ+数値をシンプルに組み合わせたい場合。カラーゾーンや警告ラインの設定も容易でKPIパネルとの相性がよい。
  • ApexCharts: radialBar で円弧型ゲージを最小限のコードで実装できる。複数指標を同一チャートに並べることも容易で、ビジネスダッシュボードに最適。
  • Nivo: @nivo/pie の半円表示でゲージを表現。専用ゲージコンポーネントはないが、Nivoの洗練されたデザインシステムで統一したい場合に有効。

ゲージチャート(Gauge Chart)は、KPIや使用率などの単一指標を半円形または円弧形で視覚的に表示するグラフ。現在値と上限・下限を直感的に把握できる。

サーバーのCPU/メモリ使用率、売上達成率、スコア表示など、単一指標の現在値と目標値の関係を示す場面で広く使われる。

主なバリエーション
  • 半円形ゲージ(Semicircle)
  • フルサークルゲージ(Full Circle)
  • 複数ゲージの並列表示
  • カラーゾーン付きゲージ
  • アニメーション付きゲージ

関連する逆引きリファレンス