Graph 图中边的顶点着色
我在mathematica工作,有一个图,每个顶点都有不同的颜色,我想给边着色。例如:如果两个顶点具有相同的颜色,则边将具有某种颜色,对于具有此属性的所有边,依此类推Graph 图中边的顶点着色,graph,wolfram-mathematica,Graph,Wolfram Mathematica,我在mathematica工作,有一个图,每个顶点都有不同的颜色,我想给边着色。例如:如果两个顶点具有相同的颜色,则边将具有某种颜色,对于具有此属性的所有边,依此类推 通常,如何获取顶点的颜色 谢谢 假设您可以访问输入,以下是如何生成图形: g = Select[ Union@Table[ RandomInteger[{1, 10}] -> RandomInteger[{1, 10}], {35}], ! Equal @@
谢谢 假设您可以访问输入,以下是如何生成图形:
g = Select[
Union@Table[
RandomInteger[{1, 10}] -> RandomInteger[{1, 10}], {35}],
! Equal @@ # &];
colors = Table[
i -> RandomChoice[ {Red, Blue, Green, Orange} ] ,
{i, (Union@Flatten[List @@@ g])}];
Graph[g,
VertexStyle -> colors,
EdgeStyle -> ((# -> (#[[1]]/.colors )) & /@
Select[g,(#[[1]]/.colors) == (#[[2]]/.colors ) & ]) ]
如果您只有graph对象,并且需要提取样式数据,这将是一件有点繁琐的事情。使用的属性映射功能可以更容易地做到这一点 生成具有随机颜色的图形:
SeedRandom[1234]
g = RandomGraph[{10, 20},
VertexStyle -> {_ :> RandomChoice[{Orange, Darker@Green, Lighter@Blue}]},
EdgeStyle -> Thick,
VertexSize -> Medium
]
加载包:
<<IGraphM`
说明:
IGEdgeVertexProp[VertexStyle]
是一个函数,它以列表的形式提取所有边端点的顶点样式
IGEdgeVertexProp[VertexStyle][g]
igegemap[f,prop->fun,g]
将函数f
应用于上述列表的每个元素(由fun[g]
返回),并将每个结果存储在edge属性prop
中
我发现这种处理属性的方式对于图形样式、属性转换、复制属性等非常容易
还有用于分别提取边和顶点属性的
IGEdgeProp
和IGVertexProp
,以及用于将函数映射到顶点属性的IGVertexMap
。使用用于创建图形的数据,然后对图形对象本身进行操作可能会更容易。你能更详细地解释一下你想做什么吗。边/顶点的着色指令由EdgeStyle
和VertexStyle
给出。谢谢!这段代码非常有帮助,可以理解!
IGEdgeVertexProp[VertexStyle][g]