Graphviz:更改子图簇内的节点间距

Graphviz:更改子图簇内的节点间距,graphviz,Graphviz,在Graphviz方面有经验但没有专家 我正在共享的示例代码和图像是一个更大的图的一部分,我将其拉出以使问题和示例更清晰 该图以秩分隔,并从左向右流动。在图像示例中,您可以看到三个列组和节点之间的空间很好,但我想在子图中收紧它们 我已经尝试了半打语法选项,但没有一个允许我缩小子图中节点之间的垂直距离,也没有其他地方 不确定如何将节点集仅隔离到子图集群 谢谢你的帮助 如果确定要拧紧的这些节点位于同一列上,则可以使用表替换它们。在表中,您可以删除外边框并设置cellspacking属性以控制单元格

在Graphviz方面有经验但没有专家

我正在共享的示例代码和图像是一个更大的图的一部分,我将其拉出以使问题和示例更清晰

该图以秩分隔,并从左向右流动。在图像示例中,您可以看到三个列组和节点之间的空间很好,但我想在子图中收紧它们

我已经尝试了半打语法选项,但没有一个允许我缩小子图中节点之间的垂直距离,也没有其他地方

不确定如何将节点集仅隔离到子图集群

谢谢你的帮助


如果确定要拧紧的这些节点位于同一列上,则可以使用表替换它们。在表中,您可以删除外边框并设置cellspacking属性以控制单元格之间的距离

要为这些伪节点创建边,必须为每个单元格设置端口属性,然后将这些端口作为属性或
节点:端口
语法引用

您唯一的不便是无法使用语法
node1->{pseudonode1;pseudonode2;node3}
为包含这些伪节点的多个节点创建边,因为头端口是边的前庭。因此,您必须单独声明这些边

使用此技术的示例如下所示:

digraph G {

    graph   [rankdir=LR, ranksep=.8, nodesep=.25];
    edge    [dir=forward, color=black];
    node    [shape=rectangle, fontsize=12, fontname="Times-Roman", height=.45];

    {edge [color=firebrick1]    v_Automobile    ->{"Locational"; "Consumption"; "Governmental"};};
    {edge [color=blue2]         v_Body          ->{"BioMetric"; "Networked IoT"; "Medical"};};
    {edge [color=darkviolet]    v_Citizen       ->{"Associative"; "Conversaional"; "Governmental"; "Political"};};
    {edge [color=lightskyblue]  v_Consumer      ->{"Consumption"; "Educational"; "Employment"; "Governmental"; "Locational"; "Medical"; "Transactional"};};
    {edge [color=crimson]       v_Home          ->{"Consumption"; "Emanative"; "Locational"; "Networked IoT"};};

    {edge [color=blue2]         "BioMetric"     -> tight:Camera;};
    {edge [color=blue2]         "BioMetric"     -> tight:Apps;};
    {edge [color=blue2]         "BioMetric"     ->{"CCTV"};};
    {edge [color=crimson]       "Consumption"   ->"Smart Meter"};
    {edge [color=blue2]         "Medical"       ->tight:Apps};
    {edge [color=darkviolet]    "Political"     ->"Ballot"};
    {edge [color=lightskyblue]  "Transactional" -> tight:Browser};
    {edge [color=lightskyblue]  "Transactional" -> tight:Apps;};
    {edge [color=lightskyblue]  "Transactional" -> {"Reward Cards"; "Paypoint"};};

    subgraph cluster_SmartPhone {label = "Smart Phone";
            dirType=none;
            tight [
                shape=none
                label=<
                    <table border="0" cellborder="1" cellspacing="10">
                        <tr>
                            <td port="Camera">Camera</td>
                        </tr>
                        <tr>
                            <td port="Apps">Apps</td>
                        </tr>
                        <tr>
                            <td port="Browser">Browser</td>
                        </tr>
                        <tr>
                            <td port="GPS">GPS</td>
                        </tr>
                    </table>
                >
            ]
    };


    v_Automobile        [label="Automobile",
                        penwidth=2,
                        color=firebrick1];
    v_Body              [label="Body",
                        penwidth=2,
                        color=blue2];
    v_Citizen           [label="Citizen",
                        penwidth=2,
                        color=darkviolet];
    v_Consumer          [label="Consumer",
                        penwidth=2,
                        color=lightskyblue];
    v_Home              [label="Home",
                        penwidth=2,
                        color=crimson];
}
有向图G{
图[rankdir=LR,ranksep=0.8,nodesep=0.25];
边[dir=向前,color=黑色];
节点[shape=rectangle,fontsize=12,fontname=“Times-Roman”,高度=0.45];
{edge[color=firebrick1]v_Automobile->{“地点”;“消费”;“政府”};};
{edge[color=blue2]v_Body->{“生物特征”;“网络物联网”;“医疗”};};
{edge[color=darkviolet]v_Citizen->{“联合的”、“对话的”、“政府的”、“政治的”};};
{edge[color=lightskyblue]v_Consumer->{“消费”、“教育”、“就业”、“政府”、“地方”、“医疗”、“交易”};};
{edge[color=crimson]v_Home->{“消费”、“散发”、“定位”、“联网物联网”};
{edge[color=blue2]“生物识别”->tight:Camera;};
{edge[color=blue2]“生物识别”->tight:Apps;};
{edge[color=blue2]“生物特征”->{“CCTV”};};
{edge[color=crimson]“消费”->“智能电表”};
{edge[color=blue2]“Medical”->tight:Apps};
{edge[color=darkviolet]“政治”->“选票”};
{edge[color=lightskyblue]“事务”->tight:Browser};
{edge[color=lightskyblue]“事务”->tight:Apps;};
{edge[color=lightskyblue]“交易”->{“奖励卡”;“支付点”};};
子图群集_智能手机{label=“智能手机”;
dirType=无;
紧的[
形状=无
标签=<
摄像机
应用程序
浏览器
全球定位系统
>
]
};
v_Automobile[label=“Automobile”,
笔宽=2,
颜色=耐火砖1];
v_Body[label=“Body”,
笔宽=2,
颜色=蓝色2];
v_Citizen[label=“Citizen”,
笔宽=2,
颜色=暗颜色];
v_消费者[label=“Consumer”,
笔宽=2,
颜色=浅天蓝];
v_Home[label=“Home”,
笔宽=2,
颜色=深红色];
}
结果:

digraph G {

    graph   [rankdir=LR, ranksep=.8, nodesep=.25];
    edge    [dir=forward, color=black];
    node    [shape=rectangle, fontsize=12, fontname="Times-Roman", height=.45];

    {edge [color=firebrick1]    v_Automobile    ->{"Locational"; "Consumption"; "Governmental"};};
    {edge [color=blue2]         v_Body          ->{"BioMetric"; "Networked IoT"; "Medical"};};
    {edge [color=darkviolet]    v_Citizen       ->{"Associative"; "Conversaional"; "Governmental"; "Political"};};
    {edge [color=lightskyblue]  v_Consumer      ->{"Consumption"; "Educational"; "Employment"; "Governmental"; "Locational"; "Medical"; "Transactional"};};
    {edge [color=crimson]       v_Home          ->{"Consumption"; "Emanative"; "Locational"; "Networked IoT"};};

    {edge [color=blue2]         "BioMetric"     -> tight:Camera;};
    {edge [color=blue2]         "BioMetric"     -> tight:Apps;};
    {edge [color=blue2]         "BioMetric"     ->{"CCTV"};};
    {edge [color=crimson]       "Consumption"   ->"Smart Meter"};
    {edge [color=blue2]         "Medical"       ->tight:Apps};
    {edge [color=darkviolet]    "Political"     ->"Ballot"};
    {edge [color=lightskyblue]  "Transactional" -> tight:Browser};
    {edge [color=lightskyblue]  "Transactional" -> tight:Apps;};
    {edge [color=lightskyblue]  "Transactional" -> {"Reward Cards"; "Paypoint"};};

    subgraph cluster_SmartPhone {label = "Smart Phone";
            dirType=none;
            tight [
                shape=none
                label=<
                    <table border="0" cellborder="1" cellspacing="10">
                        <tr>
                            <td port="Camera">Camera</td>
                        </tr>
                        <tr>
                            <td port="Apps">Apps</td>
                        </tr>
                        <tr>
                            <td port="Browser">Browser</td>
                        </tr>
                        <tr>
                            <td port="GPS">GPS</td>
                        </tr>
                    </table>
                >
            ]
    };


    v_Automobile        [label="Automobile",
                        penwidth=2,
                        color=firebrick1];
    v_Body              [label="Body",
                        penwidth=2,
                        color=blue2];
    v_Citizen           [label="Citizen",
                        penwidth=2,
                        color=darkviolet];
    v_Consumer          [label="Consumer",
                        penwidth=2,
                        color=lightskyblue];
    v_Home              [label="Home",
                        penwidth=2,
                        color=crimson];
}