我正在尝试使用GraphPlot
函数来构建Graph
,其中每个节点都是一个图像。我想将图像显示为我的顶点。有人知道怎么做吗?
我试过这样的事情:
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] &) ]
然后它工作,它显示每个节点的顶点数。
答案 0 :(得分:4)
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] &)]
修改强>
- 删除了Infix符号笑话 -
答案 1 :(得分:2)
两个可能的问题:
您的图表Map[If[# > 2.0 , 0, 1] &, imgDistT, {2}]
似乎包含零和1 - 但零是imgs
数组的无效索引
由于缩放问题,图像可能无法正常显示 - 例如,它们可能非常大,只有白色部分可见。尝试指定明确的图像大小。
的输出是什么
GraphPlot[Map[If[# > 2.0 , 0, 1] &, imgDistT, {2}],
VertexRenderingFunction -> (Module[{tmp =
Inset[Image[imgs[[#2]], ImageSize -> 10], #1, Center]},
Print[tmp]; tmp] &)]