具有类似HTML的节点的Graphviz,试图控制箭头形状

问题描述 投票:0回答:1

我正在尝试创建haproxy重定向的表示形式,并且还链接到haproxy后面的服务。

我有以下点代码:

digraph structs {
    node [shape=plaintext]

    subgraph cluster_haproxy {
        label = "haproxy";

        haproxy [label=<
            <TABLE BORDER="3" CELLBORDER="1" CELLSPACING="50">
                <TR>
                    <TD PORT="80">80</TD>
                    <TD PORT="443">443</TD>
                </TR>
            </TABLE>
        >];
    }

    subgraph cluster_service001 {
        label = "service001";

        service001 [label=<
            <TABLE BORDER="3" CELLBORDER="1" CELLSPACING="4">
                <TR>
                    <TD PORT="123456789">123456789</TD>
                </TR>
            </TABLE>
        >];
    }

    haproxy:80:e -> haproxy:443:w;
    haproxy:443 -> service001:123456789;
}

在此图像中显示,显示端口80被重定向到端口443:

enter image description here

我要实现的只是从80到443的直线箭头,没有任何曲线。

请注意,同一条线上可能会有更多端口。

我尝试添加splines=line

我在基于记录的节点上进行了尝试,给它们一个rank=same以使它们彼此相邻,但这给了我这个错误消息:

警告:相邻节点之间的平坦边缘,其中一个具有记录形状-用类似HTML的标签替换记录

我尝试过box形状,但是从左到右的顺序排列错误。

这里的想法用光了。任何有关如何正确地做这样的事情的建议,将不胜感激。

graphviz dot
1个回答
0
投票

GraphViz不处理节点Vell中的内部边缘

我建议您改为以下两个级别的群集:

digraph structs {
    node [shape=plaintext]

    subgraph cluster_haproxy {
        label = "haproxy";

        subgraph cluster_haproxy2 { 
            penwidth=3
            label=""
            node[shape=rect]
            {rank=same
            80
            443}
        }
    }

    subgraph cluster_service001 {
        label = "service001";

        subgraph cluster_service001 { 
            penwidth=3
            label=""
            123456789[shape=rect]
        }
    }

    80 -> 443
    443 -> 123456789
}
© www.soinside.com 2019 - 2024. All rights reserved.