2015-04-15 153 views
1
  1. 我在mathematica中工作,并有一个图形,每个顶点都是不同的颜色,我想着色边缘。例如:如果两个顶点具有相同的颜色,则边将以某种颜色显示,以此类推所有具有此属性的边。根据顶点颜色在图中着色边缘

  2. 一般来说,我怎样才能得到顶点的颜色?

谢谢!

+0

它可能会更容易处理用于创建'Graph'的数据,然后对图对象本身进行操作。你能否更详细地解释你正在尝试做什么?边缘/顶点着色指令由“EdgeStyle”和“VertexStyle”给出.. – agentp

回答

0

这里是如何产生的图形,假设你有机会获得输入:

g = Select[ 
     [email protected][ 
      RandomInteger[{1, 10}] -> RandomInteger[{1, 10}], {35}], 
      ! Equal @@ # &]; 
colors = Table[ 
    i -> RandomChoice[ {Red, Blue, Green, Orange} ] , 
      {i, ([email protected][List @@@ g])}]; 
Graph[g, 
    VertexStyle -> colors, 
    EdgeStyle -> ((# -> (#[[1]]/.colors)) & /@ 
    Select[g,(#[[1]]/.colors) == (#[[2]]/.colors) & ]) ] 

enter image description here

如果你只有图形对象,并需要提取,这将是一个风格数据一点苦差事。

+0

谢谢!代码非常有帮助和可以理解! –