有人可以推荐使用库或代码来显示C#中的二分图吗?
图形#似乎不直接支持这种图形(但有 一些支持解开顶点)。
我想在节点中创建一些像bipartite graph这样的图形,其中包含一些文本。宽度和高度相同的节点是理想的。
WPF控件将是完美的,因为它存在于图形#。 甚至可能存在XAML定义? 作为一个替代方案:报告窗口也可以非常好。
可能在Graph#中有更多经验的人可以提供有关如何执行此操作的提示 利用Graph#。
尝试使用NodeXL,但这似乎不是完美的解决方案, 因为节点似乎没那么多可修改。也许有人可以提供 更好的解决方案。玩过Soroush提供的NetworkView。 目前,这最接近我想要的。
-update - 试过Soroush Falahati分享的NetworkView。这似乎是一个很好的基础, 但是我还不够灵活。我有相信那里的问题 没有图书馆可以开箱即用。 (NetworkView具有在控件中设置连接/边缘的出色功能 这使得它对NodeXL有了额外的推动作用。也许Graph#可以做得更多, 但此刻我刚试过这两个。
答案 0 :(得分:2)
实际上如果你可以使用客户端jquery .. iwoul强烈推荐jqPlumbs .. http://www.jsplumb.org/jquery/demo.html
答案 1 :(得分:2)
您可以在NodeXL中近似显示二分图可视化,甚至可以通过删除边缘交叉来改进它。我拿了你的样本二分图,在下图中我用它们的边(u或v)着色了节点。它们使用最小化边缘交叉的Sugiyama algorithm进行布局。我在Excel 2007--2013的交互式NodeXL模板中执行了此操作,但所有这些功能都应作为独立的NodeXL C#和WPF类库提供。此帖子中的当前库可供下载here。
我还尝试了NodeXL的一个一对一的布局来分隔这些组,并在网格中单独显示它们,并得到边际结果。
免责声明:我是NodeXL项目的顾问。
答案 2 :(得分:1)
好的,如你所愿,
这是一个示例/库,可让您轻松创建图表和流程图,
http://www.codeproject.com/Articles/182683/NetworkView-A-WPF-custom-control-for-visualizing-a
它实际上非常好。
答案 3 :(得分:1)
yFiles WPF是一个用于Windows Presentation Foundation(WPF)应用程序的扩展.NET类库。 其用于查看和编辑图表的一流UI控件允许您通过单击按钮自动排列复杂的图形,图表和网络。 我们为基于Windows窗体的应用程序设计的图表库是yFiles.NET
Graph#是图表布局框架。 它包含一些布局算法和WPF应用程序的GraphLayout控件。
答案 4 :(得分:0)
如果您可以在Windows窗体中执行此操作,则可以使用NShape。由于源是可用的,如果需要,您可以将其移植到WPF。它可能会从头开始编写它。或许您可以托管WinForms控件以获得所需的功能。但不如纯WPF解决方案那么好。
答案 5 :(得分:0)
D3.js是一个用于根据数据操作文档的JavaScript库。 D3可帮助您使用HTML,SVG和CSS将数据变为现实。 D3对Web标准的强调为您提供了现代浏览器的全部功能,无需将自己与专有框架联系起来,将强大的可视化组件和数据驱动方法结合到DOM操作中
D3允许您将任意数据绑定到文档对象模型(DOM),然后将数据驱动的转换应用于文档。例如,您可以使用D3从数组中生成HTML表。或者,使用相同的数据创建具有平滑过渡和交互的交互式SVG条形图。
D3并不是一个单一的框架,旨在提供所有可能的功能。相反,D3解决了问题的关键:基于数据有效地处理文档。这避免了专有的表示,并提供了非凡的灵活性,暴露了CSS3,HTML5和SVG等Web标准的全部功能。 D3的开销极小,支持大型数据集和交互动画的动态行为。 D3的功能风格允许通过各种组件和插件重用代码。
http://mbostock.github.com/d3/talk/20111116/force-collapsible.html