C# で使えるグラフやチャート系ライブラリのまとめ
概要
C# (.NET) で利用可能なグラフやチャート系ライブラリのまとめです。日本語の情報が少ないので、リストだけ作ってみました。オープンソースをメインに集めていますが、有料・無料などライセンス体系は様々です。
各ライブラリの詳細は、リンク先でスクリーンショットを見たり、サンプルを動かしたりしてください。情報視覚化系ライブラリのサンプルは、見ているだけで楽しいのが多いですね。 Have a fun!! :-)
グラフ (ダイアグラム) 系ライブラリ (おすすめ順)
- Diagramming packages (有料が多いが高機能、各種プログラミング用情報もあり)
- Graph2 (an enterprise level WPF diagramming framework.)
- Graphite (a diagramming control with spring embedder layout for Silverlight and WPF.)
- WPF diagramming starter kit (DSK) (a collection of WPF applications includes the Unfold library to get you started in WPF diagramming.)
- Lithium (a library specifically for tree-data (XML), available for GDI+ and WPF.)
- Netron (a GDI+ diagramming library.)
- QuickGraph (グラフ探索ライブラリ、他のライブラリを使うことで描画も可能)
- Piccolo.NET (情報視覚化ライブラリ、 Java 版から派生)
- NodeXL (Excel 2007 template、昔は .NetMap という名称だった)
- GLEE (グラフ描画ライブラリ、 Microsoft Research, 無料, 非商用) ((有料版は Automatic Graph Layout (MSAGL)))
- Open Diagram (ダイアグラム記述用、クラス図のみだが UML も描ける)
- WPF Diagram Designer (Visio 風ソフトの作り方、Part 1 - 4)
- A Free, Open Source ASP.NET Diagram Control (ASP.NET 用、オンラインで使用可能なダイアグラム)
- Dot2WPF - a WPF control for viewing Dot graphs (.dot から生成された .plain ファイルを描画)
- Diagram.NET (最近更新されていない様子)
- SharpGraphlet (発展途上)
チャート系ライブラリ (おすすめ順)
- Microsoft Chart Controls (機能もそこそこよく、標準に近いので優先利用)
- ZedGraph (標準的なチャートライブラリ)
- NPLOT Charting Library for .NET - VB.NET / C# / C++ / J# (標準的なチャートライブラリ)
- googlechartsharp (Google Chart 用の URI を生成)
- WPF : A graph control (名前の通り)
- その他、 CodeProject で「chart C#」などで検索
その他
- InfoVis:Wiki (情報視覚化 Wiki)
- MiniUML (UML 作成)
- Dependency Visualizer (.sln, .proj の依存関係を視覚化)
- SequenceViz (シーケンス図をリバースエンジニアリングで生成)
- Family.Show (家計図を作成)
まとめ
今のところ、グラフ系なら「QuickGraph」、チャート系なら「Microsoft Chart Controls」が良い感じです。必要な機能によって使用するライブラリも変わってくるので、おすすめのライブラリを試してみて、機能に不満があれば別のを使いましょう。
補足
参考までに、検索するときに使用した用語リストを以下に掲載します。自分で探そうという方、 Java だとどうなんだろうと思った方は参考にしてください。
- グラフ ライブラリ C#
- graph library C#
- Visio C#
- "like Visio" C#
- ダイアグラム C#
- Diagramming library C#
- 有向グラフ C#
- 無向グラフ C#
- digraph C#
- direct graph C#
検索に結構な時間を使ったのですが、思ったよりも「無料」の良いライブラリが見つかりませんでした。情報の視覚化 (Visualization) は、 C# よりも Java の方が充実しているのでしょうか。 (探し方が悪い可能性あり。おすすめがあれば是非教えてください。)
特に、インタラクティブ機能 (アニメーション機能やマウスで操作可能なオブジェクト) がついているライブラリは、いろいろ遊べるので好きです。今は、 prefuse という Java 用ライブラリをメインで使っていますが、 C# にも似たようなライブラリがあれば使いたいです。どなたかおすすめがあれば教えてください。