Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is it possible to combine two edges into one with a double arrow?

For example:

GraphPlot[{1 -> 2, 2 -> 1}, VertexLabeling -> True, 
 DirectedEdges -> True]

results something like

enter image description here

Is it possible to change it to something like

enter image description here

without using the drawing tool to edit the graphics directly?

share|improve this question
Which version of Mathematica are you using? – Szabolcs Apr 20 '13 at 19:02
version 8 on Mac. – user0501 Apr 20 '13 at 19:05
up vote 3 down vote accepted

This is a hack, but it'll work with GraphPlot:

GraphPlot[{1 -> 2, 2 -> 1, 1 -> 3, 3 -> 2}, MultiedgeStyle -> .001, 
 DirectedEdges -> True]

enter image description here

share|improve this answer
Thanks, that works. But the combined line seems slightly thicker than the others, do you know how to deal with that? – user0501 Apr 20 '13 at 19:23
@user0501 Unfortunately no. I'd have to search the docs more for that and right now I do not have the time. Also, ideally there should be a solution for Graph objects, not just GraphPlot. My answer is by no means complete. – Szabolcs Apr 20 '13 at 19:35
@user0501 I'm trying to do the same thing with LayeredGraphPlot with little success, so I might try Szabolcs solution. However, from your comment, to deal with the thicker double arrow, could you add something in such that if a rule and its inverse are both found, to reduce the thickness of each resulting edge by 50%? – iwantmyphd Jun 12 '15 at 19:47

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.