graph - Mathematica GraphPlot 和 EdgeRenderingFunction

标签 graph wolfram-mathematica

当我在等待 sorting 时最后,我想调整我正在处理的 Mathematica 图的一部分。问题是节点在边缘之上,我想知道是否有办法扭转它。在图像中,您可以看到箭头未正确显示...

我正在使用自定义 VertexRenderingFunctionEdgeRenderingFunction 参数执行 GraphPlot[]。它看起来像这样:

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

如您所见,如果箭头位于节点顶部,就会像他们说的那样很酷。有没有一种简单的方法可以破解它?

最佳答案

我不知道是否可以通过 GraphPlot 选项直接执行此操作,但您可以直接操作 GraphPlot 生成的 Graphics 对象。例如,这是一个与您的特征相似的图表。

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}]

当然,您的 Graphics 对象可能具有不同的结构。

马克·麦克卢尔

关于graph - Mathematica GraphPlot 和 EdgeRenderingFunction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3796279/

相关文章:

r - 在 R 中可视化强连接组件

functional-programming - mathematica 是函数式编程语言吗?

wolfram-mathematica - 如何控制图像和图形的大小?

wolfram-mathematica - 选择 SQLDateTimes 范围

java - 具有初始顶点的 JGraphx 图形编辑器

c++ - Union-Find leetcode 题目超时

r - 在 R 图中绘制交互

matlab - 为什么我的 Z 限制没有设置,即使我指定了它?

math - mathematica 输出中的 "$"符号

wolfram-mathematica - Do/Return 在 Compile 中表现不同——为什么?