ロゴ

棒グラフライブラリ比較

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

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

6ヶ月分の月別売上と目標のデータを使用しています。

[
  {
    "month": "1月",
    "sales": 4200,
    "target": 4000
  },
  {
    "month": "2月",
    "sales": 3800,
    "target": 4000
  },
  {
    "month": "3月",
    "sales": 5100,
    "target": 5000
  },
  {
    "month": "4月",
    "sales": 4600,
    "target": 4500
  },
  {
    "month": "5月",
    "sales": 5400,
    "target": 5000
  },
  {
    "month": "6月",
    "sales": 4900,
    "target": 5000
  }
]

1. Recharts (shadcn/ui風)

React向けの宣言的なチャートライブラリ。shadcn/uiのChartsコンポーネントもRechartsをベースにしています。

✓ React向け✓ 宣言的✓ カスタマイズ容易
特徴: Reactコンポーネントとして実装でき、JSXで直感的に記述可能。 アニメーションやインタラクションが標準で組み込まれています。

2. Nivo

D3.jsベースの高品質なReactチャートライブラリ。美しいデザインとアニメーションが特徴。

✓ D3.jsベース✓ 美しいデザイン✓ アニメーション豊富
特徴: D3.jsの強力な機能を活かしつつ、Reactで簡単に使用可能。 洗練されたデフォルトのデザインとスムーズなアニメーションが魅力。

3. Chart.js (react-chartjs-2)

最も人気のあるJavaScriptチャートライブラリの一つ。シンプルで軽量、豊富なドキュメント。

✓ 軽量✓ 豊富なドキュメント✓ 高パフォーマンス
特徴: Canvas APIを使用しているため高パフォーマンス。 大量のデータポイントを扱う場合に特に効果的。react-chartjs-2でReactでも簡単に利用可能。

ライブラリ比較

ライブラリレンダリング学習コストカスタマイズ性おすすめ用途
RechartsSVGReact アプリ全般
NivoSVGデザイン重視のダッシュボード
Chart.jsCanvas大量データ・高パフォーマンス

選択のポイント

  • Recharts: Reactプロジェクトで標準的なチャートが必要な場合。 shadcn/uiと組み合わせる場合にも最適。
  • Nivo: デザイン性を重視し、美しいアニメーションが欲しい場合。 ダッシュボードやプレゼンテーション向け。
  • Chart.js: 大量のデータポイントを扱う場合や、 パフォーマンスが重要な場合。広く使われているため情報も豊富。