C#グラフライブラリおすすめ比較|用途別の選び方と導入で失敗しないポイント
はじめに
C#で業務アプリやツールを作っていると、売上推移、計測値、ログ、統計データ、株価、センサー値などを画面上にグラフ表示したくなる場面がよくあります。そこで重要になるのが、目的に合ったC#グラフライブラリの選定です。
ただし、「C# グラフライブラリ」と検索して出てくるライブラリは、WinForms向け、WPF向け、Web向け、リアルタイム描画向け、商用コンポーネント、オープンソースなど種類が多く、最初はどれを選べばよいか迷いやすいです。さらに「グラフ」という言葉には、折れ線グラフや棒グラフなどのチャート表示と、ノードとエッジで表すネットワーク図・グラフ理論の両方の意味があります。
この記事では、C#で使える主要なグラフライブラリを用途別に比較し、WinForms、WPF、.NET MAUI、Avalonia、Blazorなどの開発環境ごとにおすすめを整理します。無料・商用利用・リアルタイム描画・大量データ対応・導入しやすさまで含めて解説するため、これからC#でグラフ表示を実装する人は、ライブラリ選定の判断材料として活用してください。
1. C#グラフライブラリ選びの結論|迷ったときのおすすめ早見表
C#グラフライブラリを選ぶときは、最初から細かい機能比較に入るよりも、「どの環境で」「どの種類のグラフを」「どれくらいのデータ量で」「商用利用するか」を整理するのが近道です。
迷った場合の結論としては、シンプルなデータ可視化ならScottPlot、見た目やアニメーションを重視するならLiveCharts2、軽量で落ち着いた構成にしたいならOxyPlot、Webでインタラクティブなグラフを使いたいならPlotly.NETやBlazor対応チャート、業務システムで高性能・サポート重視ならSciChart、LightningChart、DevExpress、Telerikなどの有料ライブラリが候補になります。
1-1. 検索ユーザーの目的は「C#でグラフを描画できる最適なライブラリを知りたい」
「C# グラフライブラリ」と検索する人の多くは、単にライブラリ名を知りたいだけではありません。実際には、次のような悩みを持っていることが多いです。
「WinFormsで折れ線グラフを簡単に表示したい」「WPFで見た目のきれいなチャートを作りたい」「リアルタイムでセンサー値を描画したい」「無料で商用利用できるライブラリを探している」「大量データを高速に表示したい」「BlazorやASP.NETでWebグラフを作りたい」といった目的です。
つまり、最適なC#グラフライブラリは1つに決まりません。小規模なツール、学習用アプリ、社内業務システム、計測ソフト、金融チャート、Webダッシュボードでは、選ぶべきライブラリが変わります。
1-2. 用途別おすすめライブラリ一覧
まずは用途別に候補を整理します。
| 用途 | おすすめライブラリ | 選ぶ理由 |
|---|---|---|
| WinFormsで簡単にグラフ表示 | ScottPlot、Microsoft Chart Control | 導入しやすく、折れ線・棒・散布図などを素早く表示しやすい |
| WPFで見た目も重視 | LiveCharts2、OxyPlot、SciChart | XAMLとの相性、デザイン性、MVVM対応を考慮しやすい |
| 無料・OSS中心 | ScottPlot、LiveCharts2、OxyPlot | 無料で始めやすく、個人開発や社内ツールに向く |
| 大量データ・リアルタイム | ScottPlot、SciChart、LightningChart | 高速描画やリアルタイム表示に強い選択肢 |
| Web・Blazor | LiveCharts2、Plotly.NET、Telerik UI for Blazor | ブラウザ上での表示やインタラクションに向く |
| 科学技術計算 | ScottPlot、OxyPlot、SciChart | 線形データ、散布図、計測データの表示に使いやすい |
| 業務システム・商用UI | DevExpress、Telerik、SciChart、LightningChart | サポート、保守、豊富なUI部品を重視できる |
| ネットワーク図・グラフ理論 | QuikGraph、MSAGL、GraphX | ノード・エッジ、経路探索、レイアウトに向く |
ScottPlotは.NET向けの無料・オープンソースのプロットライブラリで、大量データのインタラクティブ表示や折れ線、棒、円、散布図などを数行のコードで作れることを特徴としています。ScottPlot LiveCharts2は.NET向けのクロスプラットフォームなデータ可視化ライブラリで、MAUI、WPF、WinForms、Blazor WebAssembly、Avaloniaなど幅広いプラットフォームをサポートしています。
GitHub
1-3. 無料・有料・商用利用で見る選び方
無料ライブラリを選ぶなら、ScottPlot、LiveCharts2、OxyPlotが有力です。ScottPlotはシンプルな描画と高速性、LiveCharts2は見た目やアニメーション、OxyPlotは軽量さと安定した設計が魅力です。OxyPlotはクロスプラットフォームの.NET向けプロットライブラリで、MITライセンスで提供されています。OxyPlot
一方で、企業向けの業務アプリ、医療・製造・金融などの高信頼性が求められるシステムでは、有料ライブラリも検討する価値があります。SciChartはリアルタイム・高性能なWPFチャートとして金融、医療、エンジニアリング用途を想定していると説明されています。SciChart LightningChartもGPUアクセラレーションやリアルタイム大量データ表示を特徴とする商用チャートとして提供されています。
NuGet
商用利用では「無料かどうか」だけでなく、ライセンス条項、再配布条件、サポート有無、将来の.NET対応、社内の保守体制まで確認することが大切です。
1-4. WinForms・WPF・MAUI・Avalonia・Blazor別の対応早見表
| ライブラリ | WinForms | WPF | .NET MAUI | Avalonia | Blazor | 特徴 |
|---|---|---|---|---|---|---|
| ScottPlot | ○ | ○ | △ | ○系パッケージあり | △ | シンプル・高速・科学技術系に使いやすい |
| LiveCharts2 | ○ | ○ | ○ | ○ | ○ | 見た目・アニメーション・対応範囲が広い |
| OxyPlot | ○ | ○ | △ | △ | △ | 軽量で落ち着いた設計 |
| Plotly.NET | △ | △ | × | △ | ○ | HTML・Web・インタラクティブ表示向き |
| Microsoft Chart Control | ○ | × | × | × | △旧ASP.NET | 既存WinForms資産向き |
| ZedGraph | ○ | △ | × | × | × | レガシー環境向き |
| SciChart | ○ | ○ | ○系製品あり | × | JS製品あり | 高性能・商用サポート |
| LightningChart | ○ | ○ | △ | × | JS製品あり | 超大量データ・リアルタイム向き |
| DevExpress | ○ | ○ | ○系製品あり | × | ○ | 業務UI全体を揃えやすい |
| Telerik | ○ | ○ | ○ | × | ○ | UIコンポーネント群と統合しやすい |
LiveCharts2はMAUI、WPF、WinForms、BlazorWasm、Avaloniaなど複数環境をサポートしているため、複数プラットフォームをまたぐプロジェクトでは候補に入れやすいライブラリです。GitHub
2. C#グラフライブラリを選ぶ前に確認すべきポイント
C#グラフライブラリ選びで失敗しやすい原因は、ライブラリの人気や見た目だけで選んでしまうことです。実装後に「大量データで遅い」「商用利用の条件が合わない」「WPFでは使いにくい」「Blazor対応が弱い」と気づくと、後からの移行コストが大きくなります。
2-1. 作りたいのはチャート表示か、グラフ理論・ネットワーク図か
まず確認すべきなのは、自分が作りたい「グラフ」が何を指しているかです。
折れ線グラフ、棒グラフ、円グラフ、散布図、ヒートマップ、株価チャートのようなデータ可視化であれば、ScottPlot、LiveCharts2、OxyPlot、SciChart、DevExpressなどのチャートライブラリを選びます。
一方、ノードとエッジで構成されるネットワーク図、依存関係図、フローチャート、経路探索、グラフ理論アルゴリズムを扱いたい場合は、QuikGraph、MSAGL、GraphX、GraphShapeなどが候補です。QuikGraphは.NET向けの有向・無向グラフ構造と、深さ優先探索、幅優先探索、A*、最短経路、最大フロー、最小全域木などのアルゴリズムを提供しています。GitHub MSAGLは.NET向けのグラフレイアウトと表示のためのライブラリです。
GitHub
2-2. デスクトップアプリ・Webアプリ・モバイルアプリの違い
C#のアプリ形態によって、選ぶべきライブラリは大きく変わります。
WinFormsならScottPlot、Microsoft Chart Control、LiveCharts2、DevExpress、LightningChartなどが候補です。WPFならLiveCharts2、OxyPlot、ScottPlot、SciChart、DevExpress、Telerikが使いやすい選択肢です。BlazorやASP.NETでWebグラフを作るなら、LiveCharts2、Plotly.NET、Telerik UI for Blazor、JavaScriptチャートとの連携が候補になります。
.NET MAUIでは、対応しているライブラリがWinFormsやWPFより限られます。LiveCharts2はMAUI対応を明示しているため、モバイルやクロスプラットフォームを考える場合に検討しやすいです。GitHub
2-3. リアルタイム描画や大量データ表示が必要か
リアルタイム描画が必要な場合は、通常の業務グラフとは別の基準で選ぶ必要があります。たとえば、センサー値、波形、ログ監視、製造ラインの計測値、金融価格などを秒間何回も更新する場合、見た目の美しさよりも描画性能、メモリ使用量、更新時のちらつき、軸更新の軽さが重要です。
数千点から数万点程度ならScottPlotでも十分対応できるケースが多いです。ScottPlotは大量データのインタラクティブ表示を簡単にする.NET向けライブラリとして説明されています。ScottPlot 一方で、数百万点以上の描画、複数系列のリアルタイム更新、GPU活用、商用サポートが必要な場合は、SciChartやLightningChartのような高性能な商用ライブラリを検討する価値があります。
2-4. 見た目のカスタマイズ性とUI/UXの重要度
社内ツールや開発者向けユーティリティであれば、見た目よりも実装の簡単さや表示速度が重視されます。その場合、ScottPlotやOxyPlotのようにシンプルなライブラリが向いています。
一方、ユーザーに見せるダッシュボード、営業資料に近い画面、管理画面、SaaSのようなプロダクトでは、配色、アニメーション、ツールチップ、凡例、ズーム、パン、レスポンシブ対応などのUI/UXが重要になります。この場合は、LiveCharts2、DevExpress、Telerik、Plotly.NETなどが候補になります。
2-5. ライセンス・商用利用・保守性の確認
ライブラリを選ぶときは、必ずライセンスを確認します。MITライセンスのように商用利用しやすいものもあれば、LGPLのように利用形態によって注意が必要なものもあります。
たとえばOxyPlotはMITライセンス、LiveCharts2もMITライセンスで提供されています。OxyPlot+1 ZedGraphはLGPL-2.1ライセンスのライブラリとして公開されています。
GitHub
また、GitHubの更新状況、NuGetの更新日、Issueへの対応、ドキュメントの充実度も重要です。特に長期運用する業務システムでは、今動くことだけでなく、数年後の.NETバージョンやOS更新に対応できるかを見ておく必要があります。
3. C#で使える主要グラフライブラリおすすめ比較
ここからは、C#で使える主要なグラフライブラリを個別に比較します。それぞれ得意分野が違うため、「どれが一番優れているか」ではなく、「どの用途に向いているか」を基準に見るのがおすすめです。
3-1. ScottPlot|シンプルで高速な描画に強い
ScottPlotは、C#で折れ線グラフ、散布図、棒グラフ、円グラフなどを手早く表示したい場合に非常に使いやすいライブラリです。公式では、無料・オープンソースの.NET向けプロットライブラリであり、大量データのインタラクティブ表示を簡単にできると説明されています。ScottPlot
ScottPlotの魅力は、コードがシンプルで学習コストが低いことです。WinFormsやWPFで「とりあえずグラフを出したい」という場面に向いています。Pythonのmatplotlibのように、コードからデータを渡して素早くプロットする感覚に近いため、科学技術計算、計測データ、ログ可視化、研究用ツールにも適しています。
一方で、UI全体のリッチなアニメーションや業務アプリ向けの統合コンポーネント群を求める場合は、LiveCharts2や商用ライブラリのほうが合うこともあります。
3-2. LiveCharts2|見た目の美しさとアニメーションに強い
LiveCharts2は、見た目のきれいなチャートやアニメーション、クロスプラットフォーム対応を重視したい場合に有力なC#グラフライブラリです。公式サイトでは、.NET向けのデータ可視化ライブラリで、MITライセンスで利用でき、有料支援も提供していると説明されています。LiveCharts
対応プラットフォームが広い点も大きな特徴です。GitHubではMAUI、Uno Platform、WPF、WinUI、Xamarin.Forms、WindowsForms、BlazorWasm、Avalonia、Eto Forms、UWPへの対応が示されています。GitHub
WPFや.NET MAUIで、ユーザーに見せるアプリを作るならLiveCharts2は候補に入れたいライブラリです。アニメーションやデザイン性を活かしやすいため、管理画面、ダッシュボード、モバイルアプリ、クロスプラットフォームアプリに向いています。
3-3. OxyPlot|軽量でクロスプラットフォーム対応しやすい
OxyPlotは、軽量で落ち着いた設計のC#グラフライブラリを探している場合に適しています。OxyPlotはクロスプラットフォームな.NET向けプロットライブラリで、MITライセンスで提供されています。OxyPlot
OxyPlotは、派手なアニメーションよりも、安定したプロット表示、MVVMとの相性、シンプルな構成を重視したい場合に向いています。WPFアプリで落ち着いた見た目の折れ線グラフや散布図を表示したい場合、候補に入れる価値があります。
一方で、最新のUI表現や豊富なアニメーションを重視する場合はLiveCharts2、極端な高性能描画を求める場合はSciChartやLightningChartのほうが適しているケースがあります。
3-4. Plotly.NET|インタラクティブなWebグラフに向いている
Plotly.NETは、Webブラウザ上でインタラクティブなグラフを表示したい場合に候補になるライブラリです。Plotly.NETは、.NETプログラミング言語でplotly.jsチャートを生成・レンダリングするための関数を提供しています。Plotly.NET
Plotly.NETはF#中心のAPIとして発展してきた背景がありますが、C#からの利用も視野に入ります。Webダッシュボード、HTML出力、インタラクティブなズーム・ホバー・凡例操作などを重視する場合に向いています。
ただし、WinFormsやWPFのネイティブコントロールとして手軽に使いたい場合は、ScottPlot、LiveCharts2、OxyPlotなどのほうが導入しやすいことがあります。
3-5. Microsoft Chart Control|標準機能で手軽に始めたい場合
Microsoft Chart Controlは、古くからあるWinFormsやASP.NET向けのチャート機能です。Microsoftのダウンロードページでは、.NET Framework 3.5向けにASP.NETおよびWindows Forms Chart Controlsを含むアセンブリをインストールするものとして説明されています。Microsoft
また、System.Windows.Forms.DataVisualizationのNuGetパッケージは、.NET Core向けWinFormsのチャートコントロールを含むものとして公開されています。NuGet
既存のWinFormsプロジェクトや、簡単な棒グラフ・折れ線グラフを標準的な機能で済ませたい場合には選択肢になります。ただし、現代的なUI、WPFやMAUI対応、リッチな操作性、大量データ性能を求めるなら、他のライブラリを選ぶほうが無難です。
3-6. ZedGraph|古い環境や既存プロジェクトで使う場合
ZedGraphは、古くから使われている.NET向けのグラフライブラリです。GitHubでは、C#で書かれた.NET向けのクラスライブラリ、ユーザーコントロール、Webコントロールで、2Dの折れ線、棒、円グラフを描画できると説明されています。GitHub
既存プロジェクトでZedGraphがすでに使われている場合や、古いWinForms環境を保守する場合には、引き続き候補になることがあります。ただし、新規開発では、更新状況やライセンス、今後の保守性を考えると、ScottPlot、LiveCharts2、OxyPlotなどを優先して検討するのがおすすめです。
3-7. SciChart・LightningChart|高性能・商用サポート重視の場合
SciChartとLightningChartは、高性能な商用C#グラフライブラリを探している場合に候補になります。
SciChart WPFは、金融、医療、エンジニアリング向けのリアルタイム・高性能WPFチャートライブラリとして説明されており、DirectXや独自レンダリングエンジン、2D・3Dチャート、サポートを特徴としています。SciChart
LightningChartは、GPUアクセラレーション、2D XY、3D XYZ、Polar、Smithチャートなどに対応し、大量データのリアルタイム可視化を目的としたチャートコントロールとして説明されています。NuGet
無料ライブラリより費用はかかりますが、描画性能、サポート、ドキュメント、業務利用での安心感を重視する場合は、有料ライブラリを選ぶ価値があります。
4. 用途別に選ぶC#グラフライブラリ
ここでは、開発環境や用途ごとに、どのC#グラフライブラリを選ぶべきかを整理します。
4-1. WinFormsで使いやすいグラフライブラリ
WinFormsで使いやすいのは、ScottPlot、Microsoft Chart Control、LiveCharts2、DevExpress、LightningChartです。
特におすすめしやすいのはScottPlotです。NuGetで導入しやすく、フォーム上にコントロールを配置して、配列データを渡すだけで折れ線グラフや散布図を表示できます。小規模な社内ツール、計測アプリ、ログビューワー、CSV可視化ツールなどに向いています。
Microsoft Chart Controlは、既存のWinFormsアプリや古い.NET Frameworkプロジェクトでは使いやすいですが、新規開発では将来性を考えてScottPlotやLiveCharts2も検討したほうがよいでしょう。
4-2. WPFでおすすめのグラフライブラリ
WPFでは、LiveCharts2、OxyPlot、ScottPlot、SciChart、DevExpress、Telerikが候補になります。
見た目の美しさやアニメーションを重視するならLiveCharts2、軽量で落ち着いたプロット表示ならOxyPlot、シンプルにデータを描画したいならScottPlot、高性能な商用チャートならSciChartやLightningChart、業務UI全体と統合したいならDevExpressやTelerikが向いています。
TelerikのRadChartViewは、読み込み時間、描画機能、リアルタイム更新に関する性能を特徴とするWPFチャートコンポーネントとして説明されています。Telerik.com DevExpressのWPF Chart Controlは、データを視覚化し、50種類以上のチャートタイプをレンダリングできると説明されています。
DevExpress
4-3. .NET MAUIで使えるグラフライブラリ
.NET MAUIでグラフを表示したい場合、LiveCharts2が有力候補です。LiveCharts2はMAUI対応を明示しており、同じ考え方でWPF、WinForms、Blazor、Avaloniaなどにも展開しやすい点が魅力です。GitHub
モバイルアプリでは、画面サイズ、タッチ操作、パフォーマンス、バッテリー消費、アニメーションの滑らかさも重要です。単純なグラフであれば無料ライブラリでも十分ですが、業務用モバイルアプリでサポートや安定性を重視するなら、Telerik UI for .NET MAUIなどの商用UIコンポーネントも検討対象になります。
4-4. Avaloniaで使えるグラフライブラリ
AvaloniaでC#グラフライブラリを使いたい場合は、LiveCharts2が候補になります。LiveCharts2はAvalonia対応を示しているため、Windows、macOS、Linuxをまたぐデスクトップアプリでグラフ表示をしたい場合に使いやすい選択肢です。GitHub
AvaloniaはWPFに近い考え方でクロスプラットフォームUIを作れるため、WPFでの経験がある開発者にとっても導入しやすい環境です。ただし、すべてのWPF向けチャートライブラリがAvaloniaで使えるわけではないため、対応状況とサンプルコードを事前に確認しましょう。
4-5. Blazor・ASP.NETで使えるグラフライブラリ
BlazorやASP.NETでグラフを表示する場合は、LiveCharts2、Plotly.NET、Telerik UI for Blazor、DevExpress Blazor、JavaScriptチャートライブラリとの連携が候補になります。
Telerik UI for BlazorのChartは、データを視覚的に意味のある形で表示し、さまざまなグラフタイプや外観制御を提供すると説明されています。Telerik.com
Webアプリでは、ズーム、ホバー、ツールチップ、レスポンシブ対応、ダークモード、データ更新のしやすさが重要です。C#だけで完結したいのか、JavaScriptとの連携を許容するのかによって選択肢が変わります。
4-6. リアルタイム計測・監視画面に向いているライブラリ
リアルタイム計測や監視画面では、ScottPlot、SciChart、LightningChartが候補になります。
小規模から中規模のリアルタイム表示であれば、ScottPlotは導入しやすく、実装もシンプルです。大量データを扱う産業用アプリ、医療波形、金融チャート、研究用計測ソフトなどでは、SciChartやLightningChartのような高性能商用ライブラリを検討するとよいでしょう。
重要なのは、サンプルデータではなく実データで検証することです。1系列だけでは速くても、10系列、100系列、長時間稼働、ズーム操作、軸自動調整、凡例更新が入ると性能が大きく変わることがあります。
4-7. 科学技術計算・大量データ可視化に向いているライブラリ
科学技術計算では、折れ線、散布図、ヒートマップ、波形、スペクトル、実験値の比較などを扱うことが多くなります。この用途では、ScottPlot、OxyPlot、SciChartが候補です。
Pythonのmatplotlibのように、配列データを渡して素早く可視化したいならScottPlotが扱いやすいです。落ち着いた設計でWPFに組み込みたいならOxyPlot、高性能かつ商用サポートが必要ならSciChartを検討するとよいでしょう。
5. 無料・オープンソースのC#グラフライブラリ比較
無料・オープンソースのC#グラフライブラリは、個人開発、学習、社内ツール、研究用ツールに向いています。ただし、無料だからといって何でも安心というわけではありません。ライセンス、更新状況、対応プラットフォーム、ドキュメントの有無を確認する必要があります。
5-1. 無料ライブラリを選ぶメリット
無料ライブラリの最大のメリットは、初期費用をかけずに試せることです。NuGetで導入して、サンプルコードを動かし、実データで性能を確認できます。
また、GitHubでソースコードを確認できるライブラリであれば、不具合の原因調査やカスタマイズもしやすくなります。個人開発やプロトタイプでは、まず無料ライブラリで試し、要件に合わなくなった段階で有料ライブラリを検討する流れが現実的です。
5-2. ScottPlot・LiveCharts2・OxyPlotの違い
ScottPlot、LiveCharts2、OxyPlotは、無料で使えるC#グラフライブラリとして比較されることが多いです。
ScottPlotは、シンプルなコードで高速にグラフを表示したい場合に向いています。計測データ、CSV可視化、科学技術系のプロットに適しています。
LiveCharts2は、見た目やアニメーション、クロスプラットフォーム対応を重視したい場合に向いています。WPF、MAUI、Avalonia、Blazorなど複数環境を意識するなら候補に入ります。
OxyPlotは、軽量で落ち着いた設計のプロットライブラリを求める場合に向いています。派手さよりも安定したチャート表示を重視するプロジェクトに合います。
5-3. 商用利用時に確認すべきライセンス
商用利用では、ライセンスの確認が必須です。MITライセンスのライブラリは比較的使いやすい一方、著作権表示などの条件は守る必要があります。
OxyPlotはMITライセンスで提供されています。OxyPlot LiveCharts2もMITライセンスで利用できると説明されています。
LiveCharts ZedGraphはLGPL-2.1ライセンスで公開されています。
GitHub
ライセンスはバージョンやパッケージによって変わる可能性があるため、最終的には公式サイト、GitHub、NuGet、ライセンスファイルを確認しましょう。
5-4. 無料ライブラリで失敗しやすいポイント
無料ライブラリで失敗しやすいポイントは、次のようなものです。
| 失敗例 | 対策 |
|---|---|
| サンプルでは動いたが実データで遅い | 実データ量でベンチマークする |
| 必要なグラフ種類がなかった | チャートタイプ一覧を事前に確認する |
| ツールチップやズーム操作が弱い | UI操作のサンプルを確認する |
| 更新が止まっている | GitHubやNuGetの更新状況を見る |
| 商用利用条件を見落とした | LICENSEファイルを確認する |
| MAUIやAvaloniaで使えなかった | 対応プラットフォームを確認する |
特に、リアルタイム描画や大量データ表示では、公式サンプルだけで判断しないことが重要です。
5-5. 個人開発・学習用途におすすめの選び方
個人開発や学習用途なら、まずScottPlotかLiveCharts2から試すのがおすすめです。
C#でグラフを表示する仕組みを学びたい、CSVデータを可視化したい、簡単な折れ線グラフや散布図を出したいならScottPlotが始めやすいです。WPFやMAUIで見た目のよいチャートを作りたいならLiveCharts2が向いています。
より落ち着いた設計で、WPFアプリに組み込んで長く使いたい場合はOxyPlotも検討するとよいでしょう。
6. 有料・商用C#グラフライブラリを選ぶべきケース
無料ライブラリで十分なケースは多いですが、すべてのプロジェクトで無料ライブラリが最適とは限りません。特に業務システムや長期運用する製品では、有料・商用ライブラリを選ぶメリットがあります。
6-1. 高速描画・大量データ処理が必要な場合
大量データを扱う場合、グラフ描画の性能はユーザー体験に直結します。数百万点以上のデータ、リアルタイム更新、複数系列、ズーム・パン、長時間稼働が必要な場合は、商用ライブラリの検討価値が高くなります。
SciChartやLightningChartは、高性能・リアルタイム・大量データ表示を前面に出しているライブラリです。SciChart WPFは金融、医療、エンジニアリング用途を想定したリアルタイム高性能チャートとして説明されています。SciChart LightningChartはGPUアクセラレーションや大量データのリアルタイム可視化を特徴としています。
NuGet
6-2. 企業向けサポートや長期保守が必要な場合
企業向けシステムでは、問題が発生したときに問い合わせできること、バージョンアップ情報が得られること、ドキュメントやサンプルが整っていることが重要です。
無料ライブラリはコスト面で魅力的ですが、サポートは基本的にコミュニティ頼りです。社内に詳しい開発者がいない場合や、顧客向け製品で障害対応が必要な場合は、有料ライブラリのサポートが安心材料になります。
6-3. 金融・医療・製造業など業務システムで使う場合
金融、医療、製造業では、リアルタイム性、正確性、安定性、長時間稼働、保守性が重要です。たとえば、株価チャート、心電図波形、装置の計測値、工場の監視画面などでは、グラフが止まること自体が業務上の問題になります。
このような用途では、描画性能だけでなく、サポート体制、サンプルの豊富さ、商用利用の明確さ、導入実績を重視して選びましょう。
6-4. DevExpress・Telerik・SciChart・LightningChartの比較観点
有料ライブラリを比較するときは、次のような観点で見ると判断しやすくなります。
| ライブラリ | 向いているケース | 比較ポイント |
|---|---|---|
| DevExpress | 業務アプリ全体のUIを統一したい | チャート以外のUI部品、帳票、グリッドとの統合 |
| Telerik | WPF、Blazor、MAUIなどでUI部品を揃えたい | UIコンポーネント群、ドキュメント、サポート |
| SciChart | WPFで高性能なリアルタイムチャートが必要 | 描画性能、金融・医療・工学向け機能 |
| LightningChart | 超大量データやGPU描画を重視 | リアルタイム性能、3D、計測・監視用途 |
DevExpressのWinForms Chart Controlは、2D・3Dの棒、面、折れ線、円、株価チャートなどを可視化できると説明されています。DevExpress Documentation TelerikのWPF ChartViewは、複数のチャート用途に対応するWPF向けコンポーネントとして提供されています。
Telerik.com
6-5. 無料ライブラリから有料ライブラリへ移行する判断基準
無料ライブラリから有料ライブラリへ移行する判断基準は、次の通りです。
| 判断基準 | 有料化を検討すべきサイン |
|---|---|
| 性能 | 実データで描画が遅い、UIが固まる |
| 保守 | バグ対応や.NET更新対応が不安 |
| サポート | 問題発生時に社内で解決できない |
| 機能 | 必要なチャート種類や操作性が不足 |
| 商用利用 | ライセンス確認や顧客説明が必要 |
| 品質 | 顧客向け製品として見た目や安定性が足りない |
最初から有料ライブラリを選ぶべきケースもありますが、多くの場合は無料ライブラリでプロトタイプを作り、要件が明確になった段階で有料ライブラリを比較すると失敗しにくくなります。
7. C#グラフライブラリ導入で失敗しないためのチェックポイント
C#グラフライブラリを導入するときは、機能一覧だけでなく、実際に開発・運用する観点で確認することが重要です。
7-1. NuGetでの導入しやすさを確認する
C#ライブラリはNuGetで導入できるかをまず確認しましょう。NuGetで管理できれば、チーム開発、CI/CD、バージョン管理がしやすくなります。
たとえばScottPlotはNuGetパッケージとして提供されており、WinForms向けのScottPlot.WinFormsなども公開されています。NuGet LiveChartsCoreもNuGetで公開され、対応プラットフォームごとの導入ガイドが案内されています。
NuGet
7-2. サンプルコードやドキュメントの充実度を見る
グラフライブラリは、サンプルコードの充実度が重要です。特に、軸設定、凡例、ラベル、複数系列、リアルタイム更新、ズーム、パン、ツールチップ、画像保存などは、実装時によく使います。
公式ドキュメントに自分の用途に近いサンプルがあるかを確認しましょう。サンプルが少ないライブラリは、最初は使えても、細かいカスタマイズで詰まりやすくなります。
7-3. 対応しているグラフ種類を確認する
必要なグラフ種類が対応しているかを確認しましょう。一般的には、折れ線、棒、円、散布図があれば十分なことも多いですが、業務によってはヒートマップ、箱ひげ図、ローソク足、レーダーチャート、3D、極座標、ガントチャートなどが必要になることがあります。
DevExpressのWPF Chart Controlは、面、棒、円、ドーナツ、ファンネル、折れ線、バブル、ウォーターフォール、箱ひげ、ヒストグラム、レーダー、極座標、株価、ローソク足など50種類以上のチャートタイプを提供すると説明されています。DevExpress
7-4. ズーム・パン・ツールチップなどの操作性を確認する
ユーザーがグラフを操作する場合、ズーム、パン、ツールチップ、凡例クリック、系列の表示・非表示、範囲選択、カーソル値表示などが必要になることがあります。
見た目がきれいでも、操作性が弱いと実務では使いにくくなります。特に監視画面や分析画面では、「気になる範囲を拡大する」「特定時刻の値を見る」「複数系列を比較する」といった操作が重要です。
7-5. 更新頻度・GitHubの活動状況・コミュニティを確認する
無料ライブラリを使う場合は、GitHubのコミット履歴、Issue、Pull Request、リリース履歴を確認しましょう。更新が止まっているライブラリは、今は動いても将来の.NETやOS更新で問題になる可能性があります。
また、Stack Overflow、GitHub Discussions、公式Discord、サンプルリポジトリなど、質問や調査に使える情報源があるかも大切です。
7-6. 将来の.NETバージョン対応を見越して選ぶ
C#と.NETは継続的に進化しています。古い.NET Framework向けライブラリを使い続ける場合、将来の移行で負担が増えることがあります。
新規開発では、.NET 8以降や今後のLTSバージョンへの対応、WinForms・WPF・MAUI・Blazorなど対象環境の将来性を見越して選ぶことが大切です。長期運用する業務アプリでは、ライブラリ単体の機能よりも、保守性と移行しやすさを重視しましょう。
8. C#グラフライブラリの導入手順
ここでは、C#グラフライブラリを導入する一般的な流れを説明します。具体例として、WinFormsでScottPlotを使う場合をイメージすると理解しやすいです。
8-1. NuGetパッケージをインストールする
まず、対象プロジェクトにNuGetパッケージを追加します。WinFormsでScottPlotを使う場合は、次のようにインストールできます。
Bashdotnet add package ScottPlot.WinForms
Visual Studioを使っている場合は、「NuGetパッケージの管理」からライブラリ名を検索して追加しても構いません。
WPFならWPF向け、MAUIならMAUI向け、BlazorならBlazor向けのパッケージを選びます。同じライブラリでも、プラットフォームごとにパッケージ名が異なることがあるため注意しましょう。
8-2. 画面にグラフコントロールを配置する
次に、画面にグラフ表示用のコントロールを配置します。WinFormsであればフォームにコントロールを追加し、WPFであればXAMLにチャートコントロールを配置します。
ScottPlotのWPFクイックスタートでは、ScottPlot.WPFパッケージをインストールし、XAMLに名前空間を追加してWpfPlotを配置する流れが説明されています。ScottPlot
8-3. データ系列を作成して表示する
グラフに表示するためのデータ系列を作成します。たとえば、X軸とY軸の配列を用意し、折れ線グラフとして追加します。
C#double[] xs = { 1, 2, 3, 4, 5 };
double[] ys = { 2, 4, 9, 16, 25 };
formsPlot1.Plot.Add.Scatter(xs, ys);
formsPlot1.Refresh();
実際のアプリでは、CSV、データベース、API、センサー、ログファイルなどから取得した値を配列やリストに変換して表示します。
8-4. 軸・凡例・色・ラベルを設定する
基本的な表示ができたら、軸、タイトル、凡例、色、ラベルを設定します。
C#formsPlot1.Plot.Title("売上推移");
formsPlot1.Plot.XLabel("月");
formsPlot1.Plot.YLabel("売上");
formsPlot1.Plot.ShowLegend();
formsPlot1.Refresh();
業務アプリでは、単に線を表示するだけでなく、ユーザーが意味を理解できるようにタイトル、単位、凡例、色分けを整えることが重要です。
8-5. 実データに置き換えるときの注意点
サンプルデータで動いたら、必ず実データで検証します。実データでは、欠損値、異常値、時系列の抜け、桁数の違い、データ量の増加が起きます。
特に注意したいのは、次の点です。
| 注意点 | 内容 |
|---|---|
| データ量 | 何点まで快適に表示できるか |
| 更新頻度 | 1秒に何回更新するか |
| 欠損値 | nullやNaNをどう扱うか |
| 軸範囲 | 自動調整か固定か |
| 時系列 | DateTime軸を使うか |
| メモリ | 長時間稼働で増え続けないか |
| UIスレッド | 描画更新で画面が固まらないか |
本番環境では、サンプルコードのままではなく、データ取得、描画更新、例外処理、ログ出力、UIスレッド制御まで含めて設計しましょう。
9. C#グラフライブラリ比較でよくある質問
ここでは、C#グラフライブラリ選定でよくある質問に答えます。
9-1. C#で無料で使えるおすすめグラフライブラリはどれか
無料で使えるおすすめは、ScottPlot、LiveCharts2、OxyPlotです。
シンプルで高速に描画したいならScottPlot、見た目やアニメーションを重視するならLiveCharts2、軽量で落ち着いた設計を求めるならOxyPlotがおすすめです。いずれも個人開発や学習、社内ツールで使いやすい候補です。
9-2. WinFormsで最も簡単に使えるライブラリはどれか
WinFormsで手軽に始めるならScottPlotがおすすめです。NuGetで導入しやすく、少ないコードで折れ線グラフや散布図を表示できます。
既存の.NET Frameworkアプリで標準的なChart Controlを使っている場合はMicrosoft Chart Controlを継続する選択肢もありますが、新規開発ではScottPlotやLiveCharts2も比較するとよいでしょう。
9-3. WPFで見た目がきれいなグラフを作るならどれか
WPFで見た目のきれいなグラフを作るならLiveCharts2が候補です。アニメーションやデザイン性を活かしやすく、WPFだけでなくMAUI、Avalonia、Blazorなどにも対応しています。GitHub
業務アプリとしてUI全体の統一感を重視するなら、DevExpressやTelerikも有力です。高性能なリアルタイムチャートが必要ならSciChartを検討するとよいでしょう。
9-4. リアルタイムグラフに向いているライブラリはどれか
小規模から中規模のリアルタイムグラフならScottPlot、業務レベルの大量データや高頻度更新ならSciChartやLightningChartが候補です。
リアルタイムグラフでは、描画速度だけでなく、データ追加時のメモリ効率、UIスレッドの扱い、軸更新、ズーム中の挙動、長時間稼働時の安定性を確認しましょう。
9-5. 商用利用できるC#グラフライブラリはどれか
商用利用を考えるなら、まずライセンスを確認します。OxyPlotやLiveCharts2はMITライセンスとして提供されており、商用利用しやすい候補です。OxyPlot+1
商用サポートや高性能描画を重視するなら、DevExpress、Telerik、SciChart、LightningChartなどの有料ライブラリを検討しましょう。最終的には、利用するバージョンの公式ライセンスを確認することが重要です。
9-6. Pythonのmatplotlibのように使えるC#ライブラリはあるか
Pythonのmatplotlibのように、コードから配列データを渡して手軽にグラフを作りたいならScottPlotが近い選択肢です。折れ線グラフ、散布図、棒グラフなどを少ないコードで表示しやすく、科学技術計算やデータ分析用の簡易可視化にも向いています。
ただし、matplotlibと完全に同じ思想ではありません。C#アプリに組み込む場合は、WinForms、WPF、Blazorなど画面フレームワークとの関係も考えて選びましょう。
まとめ
C#グラフライブラリを選ぶときは、人気や知名度だけでなく、用途、開発環境、データ量、リアルタイム性、見た目、ライセンス、保守性を総合的に判断することが重要です。
迷った場合は、まず次のように選ぶと失敗しにくくなります。
| 目的 | おすすめ |
|---|---|
| とにかく簡単にグラフ表示したい | ScottPlot |
| WPFやMAUIできれいなチャートを作りたい | LiveCharts2 |
| 軽量で落ち着いたプロットが欲しい | OxyPlot |
| Webでインタラクティブに表示したい | Plotly.NET、Blazor対応チャート |
| 既存WinFormsで標準機能を使いたい | Microsoft Chart Control |
| 古い環境を保守したい | ZedGraph |
| 高性能・大量データ・リアルタイム重視 | SciChart、LightningChart |
| 業務UI全体を統一したい | DevExpress、Telerik |
| ノード・エッジのネットワーク図を扱いたい | QuikGraph、MSAGL、GraphX |
C#でグラフを描画する方法は数多くありますが、最初に目的を整理すれば選択肢はかなり絞れます。学習や小規模ツールなら無料ライブラリから始め、業務システムや高性能要件がある場合は商用ライブラリも含めて比較しましょう。実データで試し、必要な操作性や性能を確認してから採用すれば、C#グラフライブラリ導入で失敗するリスクを大きく減らせます。

