. NET 图形库?

我正在为.net 寻找图形库。有没有?

Ps: 我指的是图形库,不是图形或图表库!

编辑: 我的意思是图形,从图论: alt text
(来源: Source forge.net)

我还需要它有绘图功能。

96871 次浏览

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.

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

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.

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/

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#.

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.

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.

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.

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

Matlab has good support for graphing, and with a few lines of .NET you can call a .m file to display graphs. See Creating a graph or a plot from a C# console app, using Matlab?

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#.

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