Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graphviz 如何调整节点的外部标签_Graphviz_Dot - Fatal编程技术网

Graphviz 如何调整节点的外部标签

Graphviz 如何调整节点的外部标签,graphviz,dot,Graphviz,Dot,我想用一些外部标签绘制图形 我发现有一些有用的属性-xlabel,taillabel,headlabel,但结果看起来仍然很奇怪 MCVE 有向图{ forcelabels=true; 节点[形状=点,样式=填充;标签=”,高度=0.2]; y3[color=black;xlabel=];x3[color=gray;xlabel=]; y2[color=black;xlabel=];x2[color=gray;xlabel=]; y1[color=black;xlabel=];x1[color=

我想用一些外部标签绘制图形

我发现有一些有用的属性-
xlabel
taillabel
headlabel
,但结果看起来仍然很奇怪

MCVE

有向图{
forcelabels=true;
节点[形状=点,样式=填充;标签=”,高度=0.2];
y3[color=black;xlabel=];x3[color=gray;xlabel=];
y2[color=black;xlabel=];x2[color=gray;xlabel=];
y1[color=black;xlabel=];x1[color=gray;xlabel=];
y5[color=black;xlabel=];x5[color=gray;xlabel=];
x4[颜色=灰色;xlabel=];
y3->y2[dir=none;taillabel=0.75];
y2->y1[dir=none;taillabel=0.45];
y1->y5[dir=none;taillabel=0.35];
y3->x3[dir=none];
y2->x2[dir=none];
y1->x1[dir=none];
y5->x5[dir=none];
y5->x4[dir=none];
}
看起来像

如您所见,标签和节点之间的一致性并不总是显而易见的


因此,问题是-有没有办法改变标签的位置?

这可能不是你问题的答案,因为它看起来仍然不太好,需要大量的手动调整,但我还是发布了它:我花了相当长的时间摆弄,可能有一些想法对你的实际情况有帮助:

digraph 
{
    forcelabels = TRUE;
    splines = FALSE;

    // nodes
    node[ shape = point, style = filled, color = gray, label = "", height = 0.2 ];
    x3[ xlabel = <"x3 [0.25]"> ];
    x2[ xlabel = <"x2 [0.3]"> ];
    x1[ xlabel = <"x1 [0.1]"> ];
    x5[ xlabel = <"x5 [0.15]"> ];
    x4;
    node[ color = black ];
    y3, y2, y1, y5;
    node[ shape = plaintext, fillcolor = white ];   
    y_3[ label = "y3 (2)" ];
    y_2[ label = "y2 (3)" ];
    y_1[ label = "y1 (2)" ];
    y_5[ label = "y5 (4)" ];

    // edges
    edge[ dir = none ];
    y3:se -> y2[ label = "  0.75" ];
    y2:se -> y1[ label = "  0.45" ];
    y1:se -> y5[ label = "  0.35" ];
    y3 -> x3;
    y2 -> x2;
    y1 -> x1;
    y5 -> x5;
    y5 -> x4[ headlabel = <"x4 [0.2]"> ];
    edge[ style = invis ];
    { rank = same; y3 -> y_3 }
    { rank = same; y2 -> y_2 }
    { rank = same; y1 -> y_1 }      
    { rank = same; y5 -> y_5 }  
}
有向图
{
forcelabels=TRUE;
样条线=假;
//节点
节点[形状=点,样式=填充,颜色=灰色,标签=”,高度=0.2];
x3[xlabel=];
x2[xlabel=];
x1[xlabel=];
x5[xlabel=];
x4;
节点[颜色=黑色];
y3,y2,y1,y5;
节点[形状=纯文本,填充颜色=白色];
y_3[label=“y3(2)”;
y_2[label=“y2(3)”;
y_1[label=“y1(2)”;
y_5[label=“y5(4)”;
//边缘
边[dir=none];
y3:se->y2[label=“0.75”];
y2:se->y1[label=“0.45”];
y1:se->y5[标签=“0.35”];
y3->x3;
y2->x2;
y1->x1;
y5->x5;
y5->x4[海岬标志=];
边[style=invi];
{rank=same;y3->y_3}
{rank=same;y2->y_2}
{rank=same;y1->y_1}
{rank=same;y5->y_5}
}
屈服


你能告诉我们你想要什么吗-你的要求/抱怨不是很具体…@vaettchen我只是想买一些类似于哇,不错的东西。谢谢,在我接受你的回答之前,让我想一想
digraph 
{
    forcelabels = TRUE;
    splines = FALSE;

    // nodes
    node[ shape = point, style = filled, color = gray, label = "", height = 0.2 ];
    x3[ xlabel = <"x3 [0.25]"> ];
    x2[ xlabel = <"x2 [0.3]"> ];
    x1[ xlabel = <"x1 [0.1]"> ];
    x5[ xlabel = <"x5 [0.15]"> ];
    x4;
    node[ color = black ];
    y3, y2, y1, y5;
    node[ shape = plaintext, fillcolor = white ];   
    y_3[ label = "y3 (2)" ];
    y_2[ label = "y2 (3)" ];
    y_1[ label = "y1 (2)" ];
    y_5[ label = "y5 (4)" ];

    // edges
    edge[ dir = none ];
    y3:se -> y2[ label = "  0.75" ];
    y2:se -> y1[ label = "  0.45" ];
    y1:se -> y5[ label = "  0.35" ];
    y3 -> x3;
    y2 -> x2;
    y1 -> x1;
    y5 -> x5;
    y5 -> x4[ headlabel = <"x4 [0.2]"> ];
    edge[ style = invis ];
    { rank = same; y3 -> y_3 }
    { rank = same; y2 -> y_2 }
    { rank = same; y1 -> y_1 }      
    { rank = same; y5 -> y_5 }  
}