这可能与如何在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"];
}
Run Code Online (Sandbox Code Playgroud)
我希望通过在User的左侧放置User和Triple之间的标签来使结果更加对称.
mar*_*pet 26
使用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"];
}
Run Code Online (Sandbox Code Playgroud)
输出:

这是使用splines=false和双边的第二个解决方法:
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"];
}
Run Code Online (Sandbox Code Playgroud)
输出:
