Search code examples
graphvizdot

Graphviz: Place edge label on the other side


This may be related to How to place edge labels ON edge in graphviz: I have the following graph, which I visualize using the command dot -Teps g.dot > g.eps:

graph triple {
    node [shape=box]; User; Object; Tag;
    node [shape=diamond,style=filled]; Triple;
    {
        User -- Triple [label = "1"];
        Object -- Triple [label = "1"];
    }
    {
        rank=same;
        User;
        Object;
    }
    Triple -- Tag [label="n"];
}

I would like the result to be more symmetric by putting the label between User and Triple on the left side of the graph.


Solution

  • And here's the second workaround using splines=false and double edges:

    graph {
    splines=false;
    node [shape=box]; User; Object; Tag;
    node [shape=diamond,style=filled]; Triple;
        {
            User   -- Triple [label = "1"];
            User   -- Triple [label = ""];
            Object -- Triple [label = ""];
            Object -- Triple [label = "1"];
        }
        {
            rank=same;
            User;
            Object;
        }
        Triple -- Tag [label="n"];
    }
    

    Output:

    alt text