C#を使った無料グラフライブラリ [ OxyPlot ] 、[ ScottPlot ] 、[ LiveChart ] 、[ MsChart ] のメリット・デメリット、使い所について紹介します。C#でグラフを表示させたい、グラフ表示アプリケーションを作成したい方向けの内容となっています。
無料でできるグラフライブラリ
まずはC#で無料利用できるグラフライブラリがどのようなものがあるかを紹介します。
OxyPlot
OxyPlotはC#でできるグラフライブラリの一つで、無料で使用することができます。高速で描画することができ、リアルタイム描画も得意としています。ただ、問題点としてはOxyPlotに関するネット上の記事の掲載が少ない、グリッド線を表示中に多量のデータを描画しようとすると重くなりやすいといったデメリットもあります。パフォーマンスで見ればScottPlotとLiveChartの間ぐらいの性能になります。
使用することによるメリット・デメリットについては以下の通りです。
メリット | 描画が高速なため、リアルタイムで動くようなグラフの場合に活用できる。クロスプラットフォームにも対応 |
デメリット | ネット上の記事が少ない、グリッド線を描画しつつ多量のデータを描画すると重くなりやすい |
ScottPlot
ScottPlotはC#でできるグラフライブラリの一つで、他のグラフライブラリの中で最も高速な描画を得意とするグラフライブラリとなります。おもに大量データをグラフとして描画する際に非常に便利です。ただネット上の記事が少なかったり認知度が低いという面もあります。また、リアルタイムでグラフを描画するような処理もできなくはありませんが、ScottPlotはあくまで「元から決められた大量データ」を高速に描画することを念頭に開発されている為、リアルタイムで1プロット少しずつ描画する場合は高速に処理できない場合があります。
使用することによるメリット・デメリットについては以下の通りです。
メリット | 高速な描画が可能、大量のデータを一括に表示させる場合は有効 |
デメリット | リアルタイム描画処理はできなくはないが不向き、ネット上の記事が少ない、モバイル向け開発ができない |
LiveChart
LiveChartはC#でできるグラフライブラリの一つで、主にアニメーションや見栄えに力を入れたグラフライブラリです。グラフ描画の際にアニメーションのようにヌルっとした動きで表示させることができます。
問題点として数万件を超えるようなデータ数を描画しようとする場合は他のグラフライブラリと比べ速度が極めて遅くなります。そのためデータ数が多い場合には他のグラフライブラリを使用する方が良いでしょう。使用することによるメリット・デメリットについては以下の通りです。
メリット | 見栄えが良いグラフを作成 アニメーションをグラフに搭載可能 Windows向け以外にもモバイル向けに対応, ネット上の記事も多いとまではないが比較的掲載されている |
デメリット | 数万を超えるデータ数の場合には描画が重い(有料版を購入すると描画速度が向上する可能性有り) |
MSChart(MicroSoft Chart)
MSChartはマイクロソフト標準のグラフライブラリで、Visual Studioと呼ばれるマイクロソフト社が提供している開発環境を使用する場合は標準として機能が備わっています。ただ基本的にはWindowsFormアプリとWPFアプリといったWindows向けアプリケーション開発で使用することになります。35種類のグラフ描画機能が用意されており、3Dグラフ等にも対応しています。
使用することによるメリット・デメリットについては以下の通りです。
メリット | 標準についているためインストール不要(場合によりインストール必要) グラフ描画が高速 3Dグラフに対応 ネット上の記事も比較的多く掲載 |
デメリット | グラフ描画までに必要な処理が多い モバイル向けには開発できない |
結論、どのグラフライブラリを使ったらいいの?
ここまでC#でできる代表的な無料グラフライブラリを紹介しましたが、実際にどのグラフライブラリを使えばよいかについては開発目的や用途によって変わってきます。考えられるグラフライブラリの用途分けとしては以下の通りです。
OxyPlot | リアルタイムでグラフを描画させたい場合 iOSやAndroid、Windowsといった多種にわたる機器に対応したグラフを描画したい場合 |
ScottPlot | 多量のデータを一括で高速で描画させたい場合、重いデータをグラフに描画させたい場合 |
LiveChart | データは少量だがグラフの見た目を鮮やかにさせたい場合 アニメーションといった動きのあるグラフを作りたい場合 |
MSChart | 3Dグラフを描画させたい場合 標準のライブラリで完結させたい場合(インストール不要) Windows向けのアプリケーションを開発させたい場合 |
何を開発するのか用途により変わる為ここで記述したライブラリ以外のグラフライブラリもあるかと思いますのでそちらのライブラリも触ってみてもいいかもしれません。今後は、「OxyPlot」について紹介していきますが、もちろん別のライブラリを使用して開発しても問題ありません。