24

これは、graphviz のエッジにエッジ ラベルを配置する方法に関連している可能性があります。コマンドを使用して視覚化する次のグラフがあります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"];
}

グラフの左側の User と Triple の間にラベルを付けて、結果をより対称的にしたいと思います。

4

2 に答える 2

29

エッジ ラベルの手動配置は、graphviz では実行できません。

headlabelただし、、labeldistanceおよびlabelangle属性を使用できます。

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

出力:

グラフビズ出力

于 2011-01-08T20:41:21.187 に答える
8

そしてsplines=false、ダブルエッジを使用した2番目の回避策は次のとおりです。

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"];
}

出力:

代替テキスト

于 2011-01-13T00:20:30.387 に答える