代码之家  ›  专栏  ›  技术社区  ›  Gleno

Mathematica GraphPlot与EdgerendingFunction

  •  3
  • Gleno  · 技术社区  · 14 年前

    sorting 最后,我想调整我正在处理的图的一部分。问题是节点位于边的顶部,我想知道是否有方法可以逆转这种情况。在图像中你可以看到箭头没有显示正确的。。。

    我在做一件事 GraphPlot[] VertexRenderingFunction EdgeRenderingFunction 参数。它看起来像这样:

    Where are the arrows? Can you see them? Did you take my arrows? http://img816.imageshack.us/img816/9703/graphbadarrows.png

    如你所见,就像他们说的那样 如果箭头在节点的顶部。有没有简单的方法 哈克斯 它在里面?

    2 回复  |  直到 8 年前
        1
  •  3
  •   Simon    14 年前

    GraphPlot[Table[i -> Mod[3 i + 1, 9], {i, 0, 8}], 
     VertexRenderingFunction -> ({{White, Disk[#, 0.15]}, 
         Circle[#, 0.15]} &), DirectedEdges -> True, 
     EdgeRenderingFunction -> ({Arrowheads[{{.05, .8}}], Red, 
         Arrow[#]} &)]
    

        2
  •  4
  •   Mark McClure    14 年前

    我不知道是否有一种方法可以直接用graphlot选项来实现,但是你可以直接操作graphlot生成的图形对象。例如,这里有一个图表,其特征与您的相似。

    bg = GraphPlot[Table[i -> Mod[3 i + 1, 9],
      {i, 0, 8}], DirectedEdges -> True,
      VertexRenderingFunction -> (
      {{White, Disk[#, 0.15]}, Circle[#, 0.15]} &),
      EdgeRenderingFunction -> (Arrow[#1] &)]
    

      bg // InputForm
    

    您可以看到箭头放置在顶点之前。只需按以下方式反转即可。

      MapAt[Reverse, bg, {1, 1}]
    

    当然,图形对象可能会有不同的结构。

    迈克·麦克卢尔