web-dev-qa-db-ja.com

言語Xに適したネットワークグラフライブラリは何ですか?

繰り返し発生する質問は、「言語Xに適したネットワークグラフライブラリとは何ですか」ということに気づきました。私はかなりの数の図書館で遊んだことがあり、私の経験をあなたと共有することができます。

PythonNetworkX は、視覚化機能が組み込まれているだけでなく、 Graphviz using pyGraphviz 。 (pyGraphvizとNetworkXは同じ作者によって書かれています)。 NetworkXはオープンソースであり、非常に使いやすいです。

PerlCircos は、ゲノムやその他の非常に複雑なデータセットを視覚化するために開発されました。常に円形のレイアウトを使用しますが、ネットワークが非常に大きく、その「モジュール性」スコアが低い場合は、多くの場合、最も適切なレイアウトです。 Circosはオープンソースです。

NetNodeXL はMicrosoft Researchによって開発されており、Excelのアドオンであると同時に.Net3.5ライブラリ。これは(Microsoftの標準に対して)かなりオープンであり、視覚化にFruchterman-Reingoldアルゴリズムを使用しています。

JavaJUNG2 が最近リリースされ、堅牢なライブラリでもあります。拡張された視覚化と主要なメトリックのサポートがあります。 JUNG2はオープンソースです。

UbiGraphUbiGraph には、Python(Python $ ===( NetworkXはUbiGraphをサポートしています)、Ruby、PHP、Java、C、C++、C#、Haskell、OCaml。XML-RPCサーバーを使用したネットワークグラフの非常に優れた3D視覚化を備えています。基本バージョンは無料です。プロフェッショナルバージョンの場合。

スタンドアロン:次のような既製のパッケージをいつでも使用できます: Graphviz (Win、 Linux、OSX)、 Pajek (Win)、 [〜#〜] ucinet [〜#〜] (Win)、またはVisio(Win)ですら。

もっとたくさんのパッケージがあると思いますが、これらは私が自分で使ったものです。他にどのようなライブラリまたはパッケージが利用できますか?

39
DrDee

graph-tool をpythonリストに追加する必要があります。これは非常に完全で、Boost GraphLibraryを使用してC++で実装されているため、桁数が大きくなります。 NetworkXなどのPythonのみの代替手段よりも高速です。

免責事項:私はgraph-toolの作者です。 :-)

10
Tiago Peixoto

Stanford Network Analysis Project (SNAP)はC++で記述され、大規模なデータセットを分析するためにパフォーマンスを念頭に置いて設計されました。プロジェクトはPythonライブラリで拡張されており、包括的なドキュメントがあります。

このプロジェクトは、さまざまなドメインの 経験的データセット に適したリソースであることにも注意してください。

2
Scott Emmons

Clojureの場合、 loom があります。そのWIPがよさそうだ。

2
ducky

Javaでは、prefuseは群を抜いて最高のグラフ描画パッケージです。非常に高速な力指向のレイアウトアルゴリズムを備えており、パラメーターをリアルタイムで微調整し、ノードをドラッグしてグラフを希望どおりに表示できるため、どのグラフよりもはるかに大きなグラフを探索して配置できます。非対話型システム。

これを試してみてください デモアプレット そしてあなたもそれに恋をするでしょう...

1
andrewdotn

yFiles は、さまざまな自動洗練されたレイアウトスタイルを幅広く提供するレイアウトアルゴリズムのスイートです。これは商用製品であり、Javascript、Java、C#などのいくつかの一般的なプラットフォームと言語で利用できます。

利用可能なアルゴリズムの多くを示すインタラクティブなオンラインデモ があり、ライブラリは無料で評価できます。

免責事項:私はこれらのライブラリを作成する会社で働いていますが、SO私は雇用主を代表していません。この推奨事項は私自身の意見に基づいています。私は、さまざまなレイアウトスイートの実装を見てきました。過去15年間で上記の言語を使用しており、これほど完全で拡張可能な他の実装は利用できません。

0
Sebastian

このページ の例が気に入った場合は、Mathematicaの グラフプロット 機能をご覧ください。ギャラリーページの作者であるYifanHuは、Wolfram Researchで働いていました。そこでは、巨大なグラフのグラフ描画アルゴリズムを開発しました。これらのアルゴリズムは現在Mathematicaに統合されています。グラフ描画の使用方法によっては、Mathematicaを使用してグラフを分析できることで大きなメリットが得られる可能性があります。たとえば、これを参照してください ブログ投稿

0
andrewdotn