.NET graph library around?

C#.Netvb.netGraph

C# Problem Overview


I am looking for Graph libraries for .net. Are there any out?

ps: I mean GRAPH libraries, not graphics nor charting libraries!

edit: What I mean is graphs, from graph theory: alt text
(source: sourceforge.net)

I also need it to have drawing capabilities.

C# Solutions


Solution 1 - C#

Use a combination of QuickGraph (GitHub, CodePlex) and Graph# for WPF (GitHub fork, CodePlex) - both top notch libraries. They work really well for me but the documentation for Graph# is almost non-existant.

Solution 2 - C#

I am working in the NDepend team and we switched from GraphViz to MsAgl (Microsoft Automatic Graph Layout) in september 2008. The MsAgl license allows commercial utilisation. Here are a few sample pictures of MsAgl graphs integrated in NDepend (everything is interactive, nodes are movable/selectable/removable/clickable, edges are editable/selectable/removable/clickable, the layout is zoomable, and also, while it could be cleaner the MsAgl API is clean enough to work with):

enter image description here enter image description here enter image description here

Solution 3 - C#

Though my previous post get deleted I'll try to give more complex answer on the question. The topmost answer is not quite actual anymore as the Graph# library is strongly outdated.

I'll recommend to check the combination of GraphX and Quickgraph. GraphX as the rendering engine and Quickgraph as the graph management and math operation component.

GraphX library is coded for WPF 4.0 and METRO. It provides many features that Graph# lacks:

  • Improved rendering performance for large graphs
  • Edge routing and bundling support, many other edge options
  • Enhanced zoom control which supports Overview window and multiple vertices selection
  • Rich documentation and samples

Also GraphX supports all the original layout algorithms from Graph#.

Solution 4 - C#

There is QuickGraph, it works pretty well and has most of the basic algorithms.

Solution 5 - C#

Take a look at yWorks: http://www.yworks.com/en/index.html

There aren't a massive amount of good libraries out there, from what I've seen.

Solution 6 - C#

You can use the NodeXL API from Microsoft Research at: http://www.codeplex.com/NodeXL but a similar question has been asked at: https://stackoverflow.com/questions/44090/do-you-know-any-graph-visualization-libraries-for-net/

Solution 7 - C#

Take a look at Satsuma. Written in C#, mainly graph algorithms, but there is some basic graph layout and drawing as well.

Solution 8 - C#

I haven't tried it yet but ran across an interesting offering from MS Research for visualizing directed graphs Microsoft Automatic Graph Layout.

Try using "directed graph" or "digraph" for search terms. I get a lot of hits.

Solution 9 - C#

Check out http://quickgraph.codeplex.com/ They have support for visualization via DotViz and Glee.

For visualization, i'd also check out

http://flare.prefuse.org/

Though its flash, it seems very interesting, and they have at least tree visualization, though you may be able to coax some non-directed graphs out of it.

Solution 10 - C#

Solution 11 - C#

Buddy I think this is what you need!

> This article presents a Generic Graph > Library, 100% C#. This library is an > attempt to port the Boost Graph > Library (BGL) from C++ to C#.

Solution 12 - C#

We've used ZedGraph which is an Open Source project written in C#, so you can tweak it if you feel it is necessary. It served our needs which sound like they're very close to what you described. There's even a wiki site for the project with some pretty good samples.

Solution 13 - C#

Matlab has good support for graphing, and with a few lines of .NET you can call a .m file to display graphs. See https://stackoverflow.com/questions/7654690/creating-a-graph-or-a-plot-from-a-c-console-app-using-matlab/7697583#7697583

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questiondevoured elysiumView Question on Stackoverflow
Solution 1 - C#Matt BreckonView Answer on Stackoverflow
Solution 2 - C#Patrick from NDepend teamView Answer on Stackoverflow
Solution 3 - C#Alexander SmirnovView Answer on Stackoverflow
Solution 4 - C#Doug McCleanView Answer on Stackoverflow
Solution 5 - C#A SView Answer on Stackoverflow
Solution 6 - C#DrDeeView Answer on Stackoverflow
Solution 7 - C#szaliView Answer on Stackoverflow
Solution 8 - C#EmmanuelView Answer on Stackoverflow
Solution 9 - C#JBlandView Answer on Stackoverflow
Solution 10 - C#jjchiwView Answer on Stackoverflow
Solution 11 - C#AutodidactView Answer on Stackoverflow
Solution 12 - C#WalterView Answer on Stackoverflow
Solution 13 - C#ContangoView Answer on Stackoverflow