可视化二部图 [英] Visualize bipartite graph

查看:189
本文介绍了可视化二部图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以推荐一个库或代码来可视化C#中的二部图吗?



Graph#似乎不直接支持这种图(但是有



我想创建像这样的图形二部图,并在节点中添加一些文本。宽度和高度相同的节点将是理想的。



WPF控件将是完美的,因为它存在于graph#。
也许甚至存在XAML定义?
作为一种替代方案:报告窗口也可能非常好。



可能对Graph#有更多经验的人可以提供有关如何执行此$ b的提示$ b利用Graph#。



使用NodeXL进行了一些尝试,但这似乎不是完美的解决方案,因为节点似乎没有太多可修改性,因此
。也许有人可以提供更好的解决方案。玩过Soroush提供的NetworkView。
目前,这与我想要的最接近。



-更新-
尝试了Soroush Falahati共享的NetworkView。这似乎是一个很好的基础,
,但是还没有我需要的那么灵活。我很难相信
那里没有可以开箱即用的库。
(NetworkView具有出色的功能,可以在控件
中设置连接/边,这比NodeXL更具优势)。也许Graph#可以做得更多,
,但此刻我只是尝试了这两个。

解决方案

您可以在 NodeXL 中逼近您的二部图可视化效果,甚至可以通过消除边缘交叉来对其进行改进。我拍下了示例二部图,并在下面的图像中对节点的侧面(u或v)进行了着色。使用 Sugiyama算法进行布局,以最大程度地减少边缘交叉。我是在Excel 2007--2013的交互式NodeXL模板中完成此操作的,但所有这些功能都应作为独立的NodeXL C#和WPF类库提供。可以在此处下载。 b
$ b



我还尝试了NodeXL的按组放置布局,以将各组分开并分别将它们显示在网格中,并产生少量结果。





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


Can someone recommend a library or code to visualize bipartite graphs in C#?

Graph# seems not to support this kind of graph directly (but has some support to disentangle vertices).

I want to create some graphic like this bipartite graph with some text in the nodes. Nodes being same width and height would be ideal.

A WPF control would be perfect, as it exists for graph#. Perhaps even a XAML definition exists? As an alternativ: a report window can also be very good.

Probably someone with more experience in Graph# can provide hints on how to do this utilizing Graph#.

Tried around a bit with NodeXL but that seems not to be the perfect solution, as the nodes seems not be that much modifiable. Perhaps someone can provide a better solution. Have played with the NetworkView provided by Soroush. At the moment this comes closest to what I want.

-update- Tried out NetworkView shared by Soroush Falahati. This seems to be a good base, but is not yet that flexible as I need it. I have problems to believe that there is no library out there that can do those things out of the box. (NetworkView has the excellent feature to set connections / edges in the control which gives it an extra boost over the NodeXL). Perhaps Graph# can do even more, but at the moment I just have tried those two.

解决方案

You can approximate your bipartite graph visualization in NodeXL, and even improve on it by removing edge crossings. I took your sample bipartite graph, and in the image below I colored the nodes by their side (u or v). They are laid out using the Sugiyama algorithm that minimizes edge crossings. I did this in the interactive NodeXL template for Excel 2007--2013, but all these features should be available as the standalone NodeXL C# and WPF class libraries. The current libraries as of this post are available to download here.

I also tried NodeXL's group-in-a-box layout to separate the groups and display them each individually in a grid, with marginal results.

Disclaimer: I'm an advisor for the NodeXL project.

这篇关于可视化二部图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆