在 C# 中创建非常大的边图和顶点图

Create very large edge and vertex graphs in C#

我正在尝试规划社交网络

例如,我有一个人A,他有5个追随者,这些追随者和这个人将由一个顶点表示,然后有一条边连接它们。而且最有可能的是,至少有一半的人互相关注,形成了一大堆 "web".

我尝试在 QuickGraph 中这样做,但是我 运行 遇到了一些问题:

  1. 该图最终看起来更像是流程图,而不是网络,之前 QuickGraph 中的示例:

  1. 当我用真实数据进行测试时,图表变成了一个巨大的、滞后的、像意大利面一样的墨水

创建这种图表的最佳方法是什么?

作为参考,我希望制作如下所示的图表:

所以您正在使用的数据结构是一个有向图——也就是说,您的节点的边缘有一个方向,从跟随者到被跟随者。

看起来您正在使用 dot 来呈现您的图表,如果您的数据有某种开始和结束——如果总体感觉早于到后来,从源到汇,从简单到复杂。

你真的没有那个,你的示例图片更典型的是无向图。做 dot 的人也做 neato,这使您的图表更接近您想要的图片。

我根本不知道 QuickGraph 的 API,但我会看看;

  • 更改您正在创建的图形数据结构——尝试切换到 UndirectedGraph 之类的东西,看看最终是否会切换渲染
  • 查看您的渲染方法中是否有选项可以渲染无向图而不是有向图。