text: user208: I want to visualise a network in a way that the nodes are along a line (and the edges are not on that line).
  I have included a simple example below.
  
  Which network visualisation programs (Cytoscape, Gephi, R igraph etc) do have this layout option?
  
  user2675: That plot is called an Arc diagram
  you can google that and use the package or program that best suits you.
  Here are 2 examples of the use of Arc diagrams in R:
  Example 1: 
  Example 2: 
  
  user15610: I'm the author of gravis, an open source package for interactive network visualization in Python. It supports many ways to influence visual properties with data, such as node size, color or location. It also allows to control edge curvature. Therefore it's possible to place all nodes along a line (or another form) and have edges with a chosen degree of curvature between them.
  
  Example 1
  
  
  Example 2
  
  
  
  Edit: Python code that reproduces your image with NetworkX and gravis
  import gravis as gv
  import networkx as nx
  
  g = nx.Graph()
  g.add_node(1, x=0, y=0)
  g.add_node(2, x=50, y=0)
  g.add_node(3, x=100, y=0)
  g.add_node(4, x=150, y=0)
  g.add_edge(1, 2)
  g.add_edge(1, 3)
  g.add_edge(3, 4)
  g.graph['node_color'] = 'blue'
  g.graph['node_size'] = 15
  gv.d3(g, edge_curvature=1.5, show_node_label=False)
  
  Result inside a Jupyter notebook (optional, just for convenience):
  
  
original_text: 208: <p>I want to visualise a network in a way that the nodes are along a line (and the edges are not on that line).
  I have included a simple example below.</p>
  
  <p><a href="https://i.stack.imgur.com/xJ9vo.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/xJ9vo.png" alt="Network on a line"></a></p>
  
  <p>Which network visualisation programs (Cytoscape, Gephi, R igraph etc) do have this layout option?</p>
   2675: <p>That plot is called an Arc diagram
  you can google that and use the package or program that best suits you.</p>
  
  <p>Here are 2 examples of the use of Arc diagrams in R:<br>
  <a href="http://www.gastonsanchez.com/visually-enforced/got-plot/how-to/2013/02/02/Arc-Diagrams-in-R-Les-Miserables/" rel="nofollow noreferrer">Example 1</a>: <a href="https://i.stack.imgur.com/hkiAS.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/hkiAS.png" alt="enter image description here"></a></p>
  
  <p><a href="http://www.sthda.com/english/articles/33-social-network-analysis/135-network-visualization-essentials-in-r/#arc-diagram-layout" rel="nofollow noreferrer">Example 2</a>: <a href="https://i.stack.imgur.com/HQX6k.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/HQX6k.png" alt="enter image description here"></a></p>
   15610: <p>I'm the author of <a href="https://robert-haas.github.io/gravis-docs/" rel="nofollow noreferrer">gravis</a>, an open source package for interactive network visualization in Python. It supports many ways to influence visual properties with data, such as node size, color or location. It also allows to control edge curvature. Therefore it's possible to place all nodes along a line (or another form) and have edges with a chosen degree of curvature between them.</p>
  <ul>
  <li><p><a href="https://robert-haas.github.io/gravis-docs/code/examples/advanced_use.html" rel="nofollow noreferrer">Example 1</a>
  <a href="https://i.stack.imgur.com/f47HU.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/f47HU.png" alt="enter image description here" /></a></p>
  </li>
  <li><p><a href="https://robert-haas.github.io/gravis-docs/code/examples/science/mathematics/integer_divisors.html" rel="nofollow noreferrer">Example 2</a>
  <a href="https://i.stack.imgur.com/KqdtJ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/KqdtJ.png" alt="enter image description here" /></a></p>
  </li>
  </ul>
  <p>Edit: Python code that reproduces your image with NetworkX and gravis</p>
  <pre><code>import gravis as gv
  import networkx as nx
  
  g = nx.Graph()
  g.add_node(1, x=0, y=0)
  g.add_node(2, x=50, y=0)
  g.add_node(3, x=100, y=0)
  g.add_node(4, x=150, y=0)
  g.add_edge(1, 2)
  g.add_edge(1, 3)
  g.add_edge(3, 4)
  g.graph['node_color'] = 'blue'
  g.graph['node_size'] = 15
  gv.d3(g, edge_curvature=1.5, show_node_label=False)
  </code></pre>
  <p>Result inside a Jupyter notebook (optional, just for convenience):
  <a href="https://i.stack.imgur.com/CGWmI.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/CGWmI.png" alt="enter image description here" /></a></p>
  