Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph 图中边的顶点着色_Graph_Wolfram Mathematica - Fatal编程技术网

Graph 图中边的顶点着色

Graph 图中边的顶点着色,graph,wolfram-mathematica,Graph,Wolfram Mathematica,我在mathematica工作,有一个图,每个顶点都有不同的颜色,我想给边着色。例如:如果两个顶点具有相同的颜色,则边将具有某种颜色,对于具有此属性的所有边,依此类推 通常,如何获取顶点的颜色 谢谢 假设您可以访问输入,以下是如何生成图形: g = Select[ Union@Table[ RandomInteger[{1, 10}] -> RandomInteger[{1, 10}], {35}], ! Equal @@

我在mathematica工作,有一个图,每个顶点都有不同的颜色,我想给边着色。例如:如果两个顶点具有相同的颜色,则边将具有某种颜色,对于具有此属性的所有边,依此类推

  • 通常,如何获取顶点的颜色


  • 谢谢

    假设您可以访问输入,以下是如何生成图形:

     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]