【问题标题】:Graph drawing software绘图软件
【发布时间】:2011-07-02 18:58:26
【问题描述】:

我需要绘制一个由 1876 个簇组成的图形,按以下方式组织:

962 clusters composed by 1 node
651 clusters composed by 2 nodes
144 clusters composed by 3 nodes
52  clusters composed by  4 nodes
24  clusters composed by  5 nodes
8   clusters composed by 6 nodes
8 clusters composed by 7 nodes
2 clusters composed by 8 nodes
4 clusters composed by 9 nodes
3 clusters composed by 10 nodes
1 cluster composed by  11 nodes
1 cluster composed by  12 nodes
4 clusters composed by 13 nodes
1 cluster composed by  16 nodes
1 cluster composed by  21 nodes
1 cluster composed by  22 nodes
1 cluster composed by  24 nodes
1 cluster composed by  25 nodes
1 cluster composed by  26 nodes
1 cluster composed by  29 nodes
2 clusters composed by 31 nodes
1 cluster composed by  43 nodes
1 cluster composed by  65 nodes
1 cluster composed by  4843953 nodes

我尝试了几个软件,包括 pajek、SocNet,但它们似乎更以节点为中心(它们让您可以在节点上执行统计和一些高级操作)。相反,我不关心节点本身,我也不关心它们的连接。 我只想展示带有内部节点的此类集群
有谁知道有什么软件可以帮到我吗?

P.S 那是livejournal的图表

【问题讨论】:

  • 在尝试绘制它之前,您应该对这个 500 万个节点的集群做一些事情。您将很难非常找到可以绘制超过一百万个节点的软件...
  • 你能澄清一下你说你不关心节点和连接,只关心集群是什么意思吗?是否需要绘制每个节点和边?
  • 节点连接不清楚或根本不可见都没有关系。重要的只是集群
  • @Giuseppe,您的意思仍然不完全清楚。在您的情况下,集群之间是否有任何联系?那你为什么不把集群折叠成一个节点,然后可视化它们之间的连接呢?
  • 显然集群断开了。我不会将集群折叠成单个节点,因为我想可视化内部高节点的集群比内部节点少的集群更大。我之前的意思是我不假装可视化节点的连接,也没有那么多的节点,突出集群之间的权重差异就足够了

标签: graphics graph social-networking


【解决方案1】:

原则上,Mathematica 8 应该能够使用其新的Graph 对象处理您的问题。我说,“原则上”,因为我很难想象一个由近 500 万个节点(或顶点)组成的集群在屏幕或纸上打印时的样子。选择合适的 GraphLayout 至关重要,因为来自Hu 的比较显示:

它们是同一个图形(936 个顶点)的 3 个描述,最差的渲染(当然)在左侧。这篇文章包含一个具有 225k 个顶点的图的渲染,该图具有一些可辨别的结构。

无论如何,它可以处理邻接矩阵或边列表等形式的输入。边缘可以是定向的,也可以不是。您可以显示和标记所有或部分或不显示顶点和边。您还可以删除集群(GraphComponents)并单独或组合显示它们。它还为您提供了各种 GraphLayout 选项:CircularEmbedding、SpiralEmbedding、HighDimensionalEmbedding、LargeNetwork 等。GraphStyles 有多种。

有一个名为 NeighborhoodGraph 的命令,您可能会发现它对这个庞大的集群很有用。 Neighborhood[g,v,n] 在从顶点 v 开始的 n 步内生成所有节点的子图。您还可以通过请求具有预先确定的边、顶点或两者列表的子图来简化事情。

请注意,某些 Graph 文档将引用 Combinatorica,尽管它非常出色且可用于多种用途,但在我看来,它呈现图形的精度不如版本 8 Graph 对象。

here 中讨论了有关大型图的图布局的一些问题。还有一个SO discussion 是关于绘制比较各种软件解决方案的大图。

【讨论】:

  • 在纸上打印 500 万个节点的图形很容易:只需拿一把刷子,将整个页面涂成黑色......
  • 是的,没有人可以声称您错过了任何节点!
  • @David 我没有很好的经验尝试将 Mathematica 用于非常大的图形,尤其是可视化。达到一定大小时它很棒,但在那之后它变得非常慢。此外,当使用 Mathematica 8 可视化非常大的图形时,最慢的部分可能不是计算布局,而是实际将其渲染到屏幕上。
  • @Szabolcs。谢谢你的笔记。我只在 MMA 中处理过小(nVertices
  • @David 不过,我们在 8 中已经拥有的功能非常有用,即使还有一些问题……我非常期待下一个版本的改进!
【解决方案2】:

试试 AT&T 的graphviz

【讨论】:

  • 不合适,我需要的是一个聚类图。绘制大小与它们进入的节点数量相关的集群就足够了。我需要一个自动程序来做到这一点。
【解决方案3】:

我认为你的问题不会得到合理的答案,但我想在这里提供我的 2 美分:

  • 查看示例如何绘制图表,然后重新表述您的问题。
  • 应该如何可视化一个集群?大多数集群都很容易可视化,但是具有 4.843.953 个节点的集群是一个杀手。我怀疑将这个集群与其他集群一起可视化是不合适的......
  • 到目前为止我所看到的最好的是Software from TowSawyer 用于可视化图表。但是该软件的价格很高,也许它可以帮助您清楚地了解如何进行可视化。

当您找到上述评论的答案和详细信息时,我认为会有一种方法将它们相应地可视化。

【讨论】:

  • 谢谢 milebelt,您的回答很好地反映了我的问题。事实上,时间帮助我理解这样的图表是不可绘制的,如果我想这样做,我必须以某种方式重新表述问题。最后,我决定报告我在我的问题上显示的输出(有由 bla bla bla 组成的 x 集群)而不是那个图形图(原谅双关语)。
【解决方案4】:

Tulip,作为每个主要 Linux 发行版的软件包(但显然也可用于 Windows)据说是 “能够在相对适中的硬件(例如. 600MHz Pentium III, 256MB RAM)".

这听起来就像你想要的。

【讨论】:

  • 它仍然不符合我的需求。我放弃了,不可能画出那样的图表。我还有另一个问题是如何在 A4 纸上表示这样的图表。即使我只专注于忽略节点连接的集群,也太过分了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 2010-10-27
相关资源
最近更新 更多