Graph Mathematica用图像绘制图形

Graph Mathematica用图像绘制图形,graph,wolfram-mathematica,Graph,Wolfram Mathematica,我试图使用GraphPlot函数来构建一个图,其中每个节点都是一个图像。我想将图像显示为我的顶点。有人知道怎么做吗 我试过这样的方法: GraphPlot[ Map[If[# > 2.0 , 0, 1] &, imgDistT, {2}], VertexRenderingFunction -> (Inset[imgs[[#2]], #1, Center] &) ] 但这是行不通的。 imgs是对应于每个顶点编号的图像列表 作为一种理智检查,如果我这样做:

我试图使用
GraphPlot
函数来构建一个
,其中每个节点都是一个图像。我想将图像显示为我的顶点。有人知道怎么做吗

我试过这样的方法:

GraphPlot[  Map[If[# > 2.0 , 0, 1] &,
 imgDistT, {2}],  
 VertexRenderingFunction -> (Inset[imgs[[#2]], #1, Center] &) ]
但这是行不通的。 imgs是对应于每个顶点编号的图像列表

作为一种理智检查,如果我这样做:

GraphPlot[
 Map[If[# > 2.0 , 0, 1] &, imgDistT, {2}], 
 VertexRenderingFunction -> (Inset[Text[#2], #1, Center] &) ]
然后,它会显示每个节点的顶点编号。

两个可能的问题:

  • 看起来您的图形,
    Map[If[#>2.0,0,1]&,imgdist,{2}]
    将包含0和1,但0是
    imgs
    数组的无效索引

  • 由于缩放问题,图像可能无法正确显示。例如,它们可能非常大,只有白色部分可能可见。尝试指定显式图像大小

它的输出是什么

GraphPlot[Map[If[# > 2.0 , 0, 1] &, imgDistT, {2}],
 VertexRenderingFunction -> (Module[{tmp = 
       Inset[Image[imgs[[#2]], ImageSize -> 10], #1, Center]}, 
     Print[tmp]; tmp] &)]
?

编辑


--中缀符号笑话被删除--

我真的不明白中缀的困扰。现在,这更像是一个笑话,而不是其他任何东西:P@yoda是的。我将在这里结束我的中缀帖子。我只是认为<代码> ~>代码>混淆,我使用它稀疏,只为操作符拼写那样(如加号B,A或B等),或类似于很容易理解的意思。Mathematica程序通常很难在不增加任何复杂性的情况下进行操作。@yoda等人,有一段时间我在自己的代码中使用了中缀符号,但通常不在这里发布。然而,在一些情况下,如果我把它留在里面,我会收到几个“+1表示中缀符号”类型的注释,所以我开始发布它。我的意图是,在合理的范围内,将我发布的代码格式化为社区认为有价值的代码。事实上,这已经成为一个笑话,而不是以我为代价。我没有也不会发布类似于上一行的代码,我也不会写这样一个混乱的代码,我相信贝里萨利斯知道这一点。如果我发布的代码很难阅读,请告诉我。@Mr.请不要把它当作个人问题。这只是个玩笑。如果它背后有什么是真的,就像许多笑话一样,那就是对于一些人来说,大量使用中缀符号更难阅读。请继续张贴,因为你觉得更舒服。虽然我一直在开玩笑,但这并不意味着任何不尊重。我来这里是为了学点东西,并享受一些乐趣。就是这样。@belisarius我不认为这是我个人的事,我也不是有意暗示我受到了人身攻击。我喜欢你的幽默,即使有时我不懂。请保持轻松的态度。:-)我想我的问题是我觉得我的立场被曲解了。具体地说:我不想把horn中缀形式应用到所有东西中,我一开始的假设是,因为它很少使用,所以很多人很难阅读。当我收到积极的评论时,我开始发更多的帖子,现在我收到了消极的评论,我将少发一些。
 imgs = ExampleData /@ ExampleData["TestImage"];
 GraphPlot[{1 -> 4, 1 -> 5, 2 -> 3, 2 -> 4, 2 -> 5, 3 -> 4, 3 -> 5}, 
   VertexRenderingFunction -> (Inset[Image[imgs[[#2]], ImageSize -> 100], #1] &)]