可视化二分图(Visualize bipartite graph)

2019-08-16 15:24发布

有人可以推荐一个库或代码,以可视化在C#中二分图?

图#好像不直接支持这种图形的(但有一定的支持,以解开顶点)。

我想创造一些图形这样的二分图在节点的一些文本。 节点为相同的宽度和高度将是理想的。

WPF控件将是完美的,因为它存在图#。 甚至一个XAML的定义存在? 作为可选择性:报告窗口也可以很好。

也许有人在图表#更多的经验可以提供有关如何做到这一点利用图#提示。

试图与周围NodeXL一点,但似乎没有得到完美的解决,作为节点似乎没有那么多的修改。 也许有人可以提供一个更好的解决方案。 发挥与索罗什提供的NetworkView。 目前,这是最接近我想要的东西。

-update-尝试了通过索罗什Falahati共享NetworkView。 这似乎是一个很好的基础,但目前尚未那灵活,因为我需要它。 我有问题,相信没有图书馆,有可以做这些事情的开箱。 (NetworkView具有优异的特征,其中给出了它在NodeXL一个额外的升压控制来设置连接/边缘)。 也许图#可以做更多,但此刻我已经试过这两个。

Answer 1:

你可以在你的接近二分图的可视化NodeXL ,并通过去除边缘交叉它甚至改善。 我把你的样品二部图,和下面的图片我自己身边的彩色节点(U或V)。 他们制定了使用杉山算法 ,最大限度地减少边交叉。 我这样做是为Excel 2007--2013互动NodeXL模板,但所有这些功能应该作为独立NodeXL C#和WPF类库。 目前库,这个帖子的可供下载在这里 。

我也试过NodeXL的研究小组,在一箱布局分离的群体和网格分别显示他们每个人,边际效果。

免责声明:我为NodeXL项目的顾问。



Answer 2:

其实,如果你能使用客户端的jQuery .. iwoul强烈建议jqPlumbs .. http://www.jsplumb.org/jquery/demo.html



Answer 3:

如你所期待的,

下面是一个例子/库,让你轻松创建图表和流程图,

http://www.codeproject.com/Articles/182683/NetworkView-A-WPF-custom-control-for-visualizing-a

它实际上具有非常好的功能。



Answer 4:

  1. yFiles WPF是一个广泛的.NET类库的Windows Presentation Foundation(WPF)应用程序。 它用于查看和编辑图表一流的UI控件,可以自动排列复杂的图形,图表和网络,一键点击。 我们制作了基于Windows窗体应用程序图表库yFiles.NET

  2. 图#是一个图形布局框架。 它包含了一些布局算法和GraphLayout控制WPF应用程序。

  3. 使用WPF的可视化与循环依赖一个图



Answer 5:

如果你能在Windows窗体做到这一点,你可以使用NShape 。 由于源可用,你很可能它移植到WPF如果你需要。 它可能击败从头开始编写它。 或者你可能拥有一个WinForms控制,以获得您所需要的功能。 不是像你一样纯WPF的解决方案,但。



Answer 6:

D3.js是一个JavaScript库操纵基于数据文件。 D3可以帮助你使用HTML,SVG和CSS数据带来的生活。 D3所强调的web标准为您提供了现代浏览器的全部功能,不占用自己的专有架构,结合了强大的可视化组件和数据驱动的方法,以DOM操作

D3可以让你随心所欲的数据绑定到一个文档对象模型(DOM),然后应用数据驱动转换到文档中。 例如,你可以使用D3从数字数组生成一个HTML表格。 或者,使用相同的数据来创建平滑的过渡和互动的交互式SVG条形图。

D3是不是铁板框架,旨在提供每一个可以想象的功能。 取而代之的是,D3解决了问题的症结所在:基于数据文件的高效操作。 这避免了专有的表示并且提供非凡的灵活性,露出的Web标准如CSS3,HTML5和SVG的全部功能。 以最小的开销,D3是非常快,支持大型数据集,互动和动画的动态行为。 D3的功能的风格允许代码重用通过组件和插件的不同的收藏品。

http://d3js.org/

http://mbostock.github.com/d3/talk/20111116/force-collapsible.html



文章来源: Visualize bipartite graph