【问题标题】:How can I show the steps of spring embedding in Mathematica?如何在 Mathematica 中显示弹簧嵌入的步骤?
【发布时间】:2015-04-19 19:23:28
【问题描述】:

我是 Mathematica 的新用户,我需要展示 9 张 10x10 网格图的图像来解释它从 圆形弹簧 的部分转换strong> 嵌入,将快照对齐到 3x3 表中。

我试过这个命令:

Grid[Partition[Table[GraphPlot[
RandomGraph[{100, 100}, GraphLayout -> "CircularEmbedding"], 
Method -> {"SpringEmbedding", "Rotation" -> True,
  "RecursionMethod" -> None, MaxIterations -> i}, 
ImageSize -> 100], {i, 9}], {3}]]

但我得到了 9 次相同的初始圆形图,只是位置略有不同,而我希望以第 9 个数字的形式返回一个适当的网格。

提前感谢您的每一个建议

【问题讨论】:

  • 如果您只运行RandomGraph 并使用不同的最大迭代次数,您会得到不同的数字吗?
  • 也许......你能告诉我怎么做吗?很抱歉我的琐碎问题,但我真的是一个新用户!
  • 您的代码实际上对我来说很好。 9 根本就没有足够的迭代来看到任何有趣的东西,试试 {i,1,90,10} 。在ImageSize 之后还有AspectRatio->1 使它看起来更好。
  • 感谢您的建议,实际上添加 AspectRatio->1 会有所改变。事实上,改变迭代次数并不会带来任何改变。我已经尝试修改它,但没有任何变化,我只是看到两个或三个顶点改变位置......我想我在指定我想要相对于 SpringEmbedding 算法的迭代次数时出错了。我要疯了!!

标签: spring graph wolfram-mathematica embedding


【解决方案1】:

您的代码的另一个问题是您为每个图形生成不同的随机起点。解决这个问题,并在这里进行更多迭代是我得到的:

 rg = RandomGraph[{100, 100}, GraphLayout -> "CircularEmbedding"];
 Grid[Partition[Table[GraphPlot[rg,
    Method -> {"SpringEmbedding", "Rotation" -> True, 
               "RecursionMethod" -> None,
          MaxIterations -> i},
           ImageSize -> 100, AspectRatio -> 1], {i, 36}], {6}]]

【讨论】:

  • 再次感谢您在我的问题上花费的时间。我必须承认,即使我尝试复制并粘贴您的命令线,我总是得到相同的结果,即我要求的所有时间都重复相同的图表。估计我的版本有问题。无论如何感谢您的帮助!
  • 或者,也许版本有问题。我有最新的,你有旧的吗?你认为它可以改变一些东西吗?评估您的相同行我得到了不同的结果,这似乎太荒谬了,只是想不通!
  • 这适用于版本 9.0.1。我想你们都应该向 wolfram 支持报告这个问题。
【解决方案2】:
rg = GridGraph[{10, 10}, GraphLayout -> "CircularEmbedding"];
Grid[Partition[
Table[GraphPlot[rg, 
Method -> {"SpringEmbedding", "Rotation" -> True, 
"RecursionMethod" -> None, MaxIterations -> i}, 
ImageSize -> 100, AspectRatio -> 1], {i, 16}], {4}]]

同样不适用于 10.0.2 和 10.1!

【讨论】:

    猜你喜欢
    • 2015-05-27
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 2011-04-13
    相关资源
    最近更新 更多