首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ShowGraph[ { {e1,e2},{e1,e3} },{e1,e2,e3} ];//这里有什么问题?

ShowGraph[ { {e1,e2},{e1,e3} },{e1,e2,e3} ];//这里有什么问题?
EN

Stack Overflow用户
提问于 2010-05-31 14:24:28
回答 4查看 991关注 0票数 0

在数学图论包'Combinatorica‘中不显示指定的图形。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-27 00:17:27

好的,谢谢大家。让我把这些讨论打包。首先,正如Janus所提到的,在Mathematica中有两种绘制图形的方法。首先,Combinatorica方式,它是一个插件。其次,GraphPlot方式,这是一个本地的数学实现来绘制图形。GraphPlot使用Spring布局来绘制图形。正如德雷夫斯所说,我们使用ShowGraph[]以Combinatorica方式绘制图形。

为了理解为什么前面提到的代码不能工作,我们必须很好地理解ShowGraph[]命令。Mathematica 7定义,

ShowGraphg将显示图形g。

现在,什么是图?

Graphe,v,opts表示图形对象,其中e是用图形选项注释的边的列表,v是用图形选项注释的顶点列表,opts是一组全局图形选项“

问题是Combinatorica似乎并不完全按照上面定义的方式工作。让我们来检查一下。假设您已经创建了一个名为g的组合图。现在g[[0]]将打印Graphg[[1]]将打印边缘列表,g[[2]]将打印opts。顶点列表在哪里??

正如您在上面看到的,您可以手动创建g[[1]]g[[2]]并将其提供给Graph。让我们创建它:

代码语言:javascript
复制
e = {{1,2}, {{1,3}}}
opts = {{{0,0}}, {{-5,5}}, {{5,5}}}
g = Graph[e, opts]

这将创建一个包含顶点1、2和3的图。现在,如何标记它们呢?在Combinatorica中,您可以使用ShowGraph[]的VertexLabel选项来完成此操作。如果你使用VertexLabel->True,它将只显示默认标签,即1,2和3。要使用您自己的标签,请执行以下操作:

代码语言:javascript
复制
ShowGraph[g, VertexLabel->{a,b,c}]

很有趣,对吧?:)。

现在来回答我问题的确切答案。上述代码的问题是由于使用了文字值而不是整数。Combinatorica只将整数值作为边或顶点列表。

请记住,尽管这是可能的,但它只对创建小图形有用。对于较大的图形,您应该使用默认的图形生成器来创建图形。例如,对于随机图,请使用:

代码语言:javascript
复制
g = Random[10, 0.23]

将创建一个具有10个顶点的图,其边概率为0.23。

瓦卡,瓦卡,

这一次是Combinatorica!

票数 1
EN

Stack Overflow用户

发布于 2010-06-01 21:37:25

需要注意的重要一点是,Mathematica有两个或多或少独立的绘图框架:一个包含在Combinatorica包中,另一个包含在GraphUtilities包中。

在我有限的经验中,Combinatorica包是一台相当大的机器,你必须摸索框架才能使用它。另一方面,GraphUtilities非常直观,有更多的图形定制选项和更多的数学感觉。

要绘制您的示例图,您只需要

代码语言:javascript
复制
Needs["GraphUtilities`"]
GraphPlot[{e1 -> e2, e1 -> e3}, VertexLabeling -> True, DirectedEdges -> True]
票数 4
EN

Stack Overflow用户

发布于 2010-05-31 21:16:32

如果您想要一个具有3个顶点的通用无向图,其边位于顶点1和顶点2之间以及顶点1和顶点3之间,则可以执行以下操作:

代码语言:javascript
复制
Needs["Combinatorica`"]
ShowGraph@AddEdges[EmptyGraph[3], {{1, 2}, {1, 3}}]

有关生成、显示和分析图形的更多信息,请跳转到Mathematica的Combinatorica Tutorial中的“表示图形”。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2941727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档