.NET 图形库? [关闭]

Posted

技术标签:

【中文标题】.NET 图形库? [关闭]【英文标题】:.NET graph library around? [closed] 【发布时间】:2010-12-07 09:38:42 【问题描述】:

我正在寻找 .net 的图形库。有出来吗?

ps:我指的是 GRAPH 库,不是图形库,也不是图表库!

编辑:我的意思是图,来自图论: (来源:sourceforge.net)

我还需要它具有绘图功能。

【问题讨论】:

也许有用:github.com/komorra/NodeEditorWinforms 图片链接好像坏了(它现在重定向到别的地方) 【参考方案1】:

结合使用 QuickGraph(GitHub、CodePlex)和用于 WPF 的 Graph#(GitHub fork、CodePlex)——这两个都是一流的库。它们对我来说效果很好,但 Graph# 的文档几乎不存在。

【讨论】:

【参考方案2】:

我在 NDepend 团队工作,我们于 2008 年 9 月从 GraphViz 切换到 MsAgl (Microsoft Automatic Graph Layout)。MsAgl 许可证允许商业使用。这是MsAgl graphs integrated in NDepend 的一些示例图片(一切都是交互式的,节点是可移动的/可选择的/可移动的/可点击的,边缘是可编辑的/可选择的/可移动的/可点击的,布局是可缩放的,而且,虽然它可以更清洁 MsAgl API 足够干净,可以使用):

【讨论】:

也可以在rise4fun.com/Agl 上玩AGL,并在rise4fun.com/rest/samples/rss/Agl 上查看其他人的图表 请注意,MSAGL 现在是 GitHub 上的 MIT 许可下的开源代码:github.com/Microsoft/automatic-graph-layout,并且似乎得到了维护,因为最近已经推送了针对 Silverlight 版本的一些修复 关于在我提到的 Rise4Fun 网站上尝试 AGL,可能是头脑风暴的一个简单选项,但您只能在此处以文本形式输入图表,并且您用于节点的标签用作 ID那个文本语法,所以我想你不能在图中的两个地方有一个具有相同标签(比如 House)的节点。似乎您也可以使用标签作为图形的边缘(用于链接),使用rise4fun.com/Agl/fsm 中显示的语法(在此处按 PLAY 按钮,然后向下滚动以查看生成的图形) 在哪里可以下载稳定的二进制版本?我不想构建每个质量未知的来源。 我猜这里github.com/Microsoft/automatic-graph-layout不确定是否包含二进制版本【参考方案3】:

虽然我之前的帖子被删除了,但我会尝试就这个问题给出更复杂的答案。 由于 Graph# 库已经过时,因此最重要的答案不再是实际的。

我建议检查GraphX 和Quickgraph 的组合。 GraphX作为渲染引擎,Quickgraph作为图形管理和数学运算组件。

GraphX 库是为 WPF 4.0 和 METRO 编码的。它提供了许多 Graph# 缺乏的特性:

改进了大图的渲染性能 边缘路由和捆绑支持,许多其他边缘选项 增强的缩放控制,支持概览窗口和多个顶点选择 丰富的文档和示例

GraphX 还支持 Graph# 中的所有原始布局算法。

【讨论】:

GraphX 链接已失效。 不,只是在主机上遇到了严重的病毒问题。论坛在线。【参考方案4】:

有QuickGraph,它工作得很好,并且有大部分的基本算法。

【讨论】:

不错,但似乎无法绘制图表。 是的。我的印象是你问的是用图表计算,而不是绘制它们。不过,它确实会输出为几种不同渲染工具所使用的格式。【参考方案5】:

看看 yWorks: http://www.yworks.com/en/index.html

据我所见,那里没有大量好的库。

【讨论】:

看起来棒极了,但图书馆的 7k 对我来说太贵了。 令人惊讶的是,这是更便宜的选择之一! 它是 7k,但我使用 API 比 yWorks .NET 和 WPF 库更有趣。【参考方案6】:

您可以使用来自 Microsoft Research 的 NodeXL API,网址为:http://www.codeplex.com/NodeXL,但类似的问题已在以下网址提出:https://***.com/questions/44090/do-you-know-any-graph-visualization-libraries-for-net/

【讨论】:

听起来不错,但从我现在从他们的示例中看到的情况来看,似乎您基本上必须自己绘制所有内容,这将是一个问题,因为我有数千个节点要绘制。 我不太清楚“自己绘制所有内容”是什么意思,NodeXL 既是 Excel 的扩展,也是 .Net 的 API,它支持图形布局算法,如强制导向布局(Fruchterman-Reingold 或 Harel-Koren 快速多尺度)或几何布局(圆形、网格、螺旋等)。我自己用过,没有太多“手动”工作 我在谈论其他事情,我对不同的回复感到困惑。但似乎 NodeXL 需要 Office 2007。我什至没有安装 Office。 我已经安装了这个。现在我应该如何在 c# 中使用它? 确保安装 API 库而不是 Office Excel 扩展。 API 位于:codeplex.com/NodeXL/Release/… NodeXL 的命名空间是 Microsoft.NodeXL,因此您可以使用以下命令导入它: import Microsoft.NodeXL.Core import Microsoft.NodeXL.Visualization(我认为这两个是最重要的库)。只需确保 IDE 的路径包含 NodeXL 文件夹即可。【参考方案7】:

看看Satsuma。用C#编写,主要是图形算法,但也有一些基本的图形布局和绘制。

【讨论】:

【参考方案8】:

我还没有尝试过,但遇到了 MS Research 提供的用于可视化有向图的有趣产品 Microsoft Automatic Graph Layout。

尝试对搜索词使用“有向图”或“有向图”。我得到了很多点击。

【讨论】:

【参考方案9】:

退房 http://quickgraph.codeplex.com/ 他们通过 DotViz 和 Glee 支持可视化。

对于可视化,我也会查看

http://flare.prefuse.org/

虽然它是闪光的,但看起来很有趣,而且它们至少具有树形可视化,尽管您可以从中哄出一些无向图。

【讨论】:

【参考方案10】:

The C5 Generic Collection Library for C# and CLI

【讨论】:

不只是包含一些基于集合数据结构的图算法的示例吗?我猜到这个问题需要 C++ BGL 库 (boost.org/doc/libs/1_40_0/libs/graph/doc/index.html) 之类的东西。 你说得对。用户指南示例中有一个 Graph 类,但它不是库的一部分。这是一个建立在它之上的例子。从查看源代码来看,这是一个凌乱、不完整的内容。 不过可以用,嗯,就像个办法……【参考方案11】:

伙计,我认为this 是您所需要的!

本文介绍了一个通用图 库,100% C#。这个图书馆是一个 尝试移植 Boost Graph 从 C++ 到 C# 的库 (BGL)。

【讨论】:

是的,但是根据我在 codeproject 的 cmets 上阅读的内容,在尝试绘制图形时会出现一些问题。【参考方案12】:

我们使用了ZedGraph,这是一个用 C# 编写的开源项目,因此如果您觉得有必要,可以对其进行调整。它满足了我们的需求,听起来与您所描述的非常接近。该项目甚至还有一个wiki site,其中包含一些非常好的示例。

【讨论】:

【参考方案13】:

Matlab 对绘图有很好的支持,只需几行 .NET 就可以调用 .m 文件来显示图形。见Creating a graph or a plot from a C# console app, using Matlab?

【讨论】:

以上是关于.NET 图形库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

用于创建图形的 Java 库 [关闭]

用于动态可视化的 Java 图形库 [关闭]

什么库或图形引擎适合全屏专业零售工具? [关闭]

iPhone上的图形生成[关闭]

[深入浅出iOS库]之图形库Core Plot

用于以图形方式显示网络的 Java 库