# Regarding graphviz's "orthogonal" edge routing

**URL:** <https://forum.graphviz.org/t/regarding-graphvizs-orthogonal-edge-routing/1889>\
**Category:** Help\
**Created:** [November 22, 2023, 3:56pm UTC](https://forum.graphviz.org/t/regarding-graphvizs-orthogonal-edge-routing/1889 "2023-11-22T15:56:13Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![steveroush](https://avatars.discourse-cdn.com/v4/letter/s/a9adbd/32.png) [@steveroush](https://forum.graphviz.org/u/steveroush)\
**Post date:** [November 22, 2023, 6:14pm UTC](https://forum.graphviz.org/t/regarding-graphvizs-orthogonal-edge-routing/1889/2 "2023-11-22T18:14:58Z")

</div>

Yes, **splines=ortho** fails miserably if ports are specified (see  
[spline = ortho produces unexpected output with ports (#1415) · Issues · graphviz / graphviz · GitLab](https://gitlab.com/graphviz/graphviz/-/issues/1415)).  
**splines=ortho** does OK if ports are not specified (see below) - node placement usually works but the port chosen by “ortho” is not always “best” and the edge route is sometimes “suboptimal”.  
Your input without ports:

```auto
digraph{
    splines="ortho"
    rankdir=TB
    node [shape=box]
    a -> b
    a -> c
    b -> c
    b -> d
    c -> d
    c -> e
    d -> a
}

```

Giving:  
 ![alterTest99a](https://global.discourse-cdn.com/graphviz/original/2X/6/6de10c96e2b7b83d942421488e8617c95dc0af85.png)

---

_[View the full topic](https://forum.graphviz.org/t/regarding-graphvizs-orthogonal-edge-routing/1889)._
