Я не знаю, есть ли способ сделать это напрямую с опциями GraphPlot или нет, но вы могли бы напрямую манипулировать объектом Graphics, созданным GraphPlot. Например, вот график, функции которого похожи на ваши.
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}]
Конечно, ваш графический объект, скорее всего, будет иметь другую структуру.
Марк МакКлюр