使节点不影响图形布局
Make a node not affect graph layout
我正在尝试在不影响连接节点定位的情况下制作节点。当我绘制图形时,它将父节点置于子节点之间;这造成了交错效应。如何使故障节点不影响其他节点的布局?我已经把线条画直了,就像他们想要的照片一样,但它仍然有交错的布局。
当前样式:
想要的风格:
编辑:
点码
strict graph "" {
graph [bb="0,0,562,490",
bgcolor="#666666",
fontcolor=white,
fontname=monospace,
label="ACI MSC - Create Bridge Domain - L3",
labelfontsize=40,
labelloc=t,
lheight=0.19,
lp="281,479",
lwidth=3.30,
newrank=yes,
nodesep=0.2,
outputorder=edgesfirst,
overlap=compress,
ranksep=0.5,
splines=spline
];
node [fillcolor=white,
fixedsize=True,
fontcolor=black,
fontname=monospace,
label="\N",
shape=rectangle,
style=filled,
width=5.125
];
edge [fontname=monospace,
fontsize=15,
penwidth=2
];
Start [color=white,
fillcolor=blue,
fixedsize=false,
fontcolor=white,
height=0.5,
pos="377.5,450",
shape=oval,
width=1];
"ACIMSC-CreateSchemaandAddTemplate-Sub" [height=0.5,
pos="377.5,378"];
Start -- "ACIMSC-CreateSchemaandAddTemplate-Sub" [color=green,
pos="377.5,431.83 377.5,421 377.5,407.29 377.5,396.41"];
"ACIMSC-AddBridgeDomaintoTemplate" [height=0.5,
pos="274.5,306"];
"ACIMSC-CreateSchemaandAddTemplate-Sub" -- "ACIMSC-
AddBridgeDomaintoTemplate" [color=green,
pos="351.51,359.83 335.89,348.92 316.1,335.08 300.48,324.16"];
Fail [color=white,
fillcolor=red,
fixedsize=false,
fontcolor=white,
height=0.5,
pos="421.5,18",
shape=oval,
weight=0,
width=1];
"ACIMSC-CreateSchemaandAddTemplate-Sub" -- Fail [color=red,
pos="423.22,359.95 439.3,351.39 455.96,339.56 466.5,324
489.24,290.42 481.5,274.55 481.5,234 481.5,234 481.5,234
481.5,162
481.5,120.71 \
475.54,109.6 458.5,72 452.5,58.75 443.25,45.25 435.5,35.063"];
"ACIMSC-AddBridgeDomaintoTemplate" -- Fail [color=red,
pos="356.37,288 391.19,278.55 426.17,266.02 436.5,252
485.39,185.63 447.55,77.845 429.6,35.692"];
VscaleACIMultisiteAddSubnettoBridgeDomain [height=0.5,
pos="244.5,234"];
"ACIMSC-AddBridgeDomaintoTemplate" --
VscaleACIMultisiteAddSubnettoBridgeDomain [color=green,
pos="266.93,287.83 262.42,277 256.7,263.29 252.17,252.41"];
VscaleACIMultisiteAddSubnettoBridgeDomain -- Fail [color=red,
pos="325.05,215.91 360.06,206.35 395.58,193.76 406.5,180
439.94,137.85 431.92,68.723 425.62,36.11"];
"ACIMSC-AddL3OuttoSiteBridgeDomain-Sub" [height=0.5,
pos="214.5,162"];
VscaleACIMultisiteAddSubnettoBridgeDomain -- "ACIMSC-
AddL3OuttoSiteBridgeDomain-Sub" [color=green,
pos="236.93,215.83 232.42,205 226.7,191.29 222.17,180.41"];
"ACIMSC-AddL3OuttoSiteBridgeDomain-Sub" -- Fail [color=red,
pos="309.72,143.87 333.49,135.88 357.57,124.41 376.5,108
398.54,88.885 410.97,56.41 416.96,36.139"];
"ACIMSC-DeployTemplatetoSites" [height=0.5,
pos="184.5,90"];
"ACIMSC-AddL3OuttoSiteBridgeDomain-Sub" -- "ACIMSC-
DeployTemplatetoSites" [color=green,
pos="206.93,143.83 202.42,133 196.7,119.29 192.17,108.41"];
"ACIMSC-DeployTemplatetoSites" -- Fail [color=red,
pos="244,71.924 290.62,57.761 353.6,38.629 390.65,27.373"];
Complete [color=white,
fillcolor="#129112",
fixedsize=false,
fontcolor=white,
height=0.5,
pos="184.5,18",
shape=oval,
width=1.3321];
"ACIMSC-DeployTemplatetoSites" -- Complete [color=green,
pos="184.5,71.831 184.5,61 184.5,47.288 184.5,36.413"];
}
我无法渲染你的代码来实现你的图片,但我将要建议的技术无论如何都应该有效。
我编写了一个类似的基本示例代码:
digraph {
node [shape=rect]
a -> b -> c -> d -> e -> f
success [shape=oval]
f -> success
{
rank=max
failure [shape=oval]
}
{a b c d e f} -> failure
}
转载您的问题后得到以下图片:
第一个可能的解决方案可能是将constraint=false
属性添加到通往falure
节点的边缘。此属性就是这样做的 - 防止边缘影响布局。
digraph {
node [shape=rect]
a -> b -> c -> d -> e -> f
success [shape=oval]
f -> success
{
rank=max
failure [shape=oval]
}
{a b c d e f} -> failure [constraint=false]
}
结果:
第二种可能的解决方案 是增加需要保持笔直的边缘的 weight 属性。权重较高的边往往比其他边更短更直:
digraph {
node [shape=rect]
a -> b -> c -> d -> e -> f [weight=10]
success [shape=oval]
f -> success
{
rank=max
failure [shape=oval]
}
{a b c d e f} -> failure
}
结果:
我正在尝试在不影响连接节点定位的情况下制作节点。当我绘制图形时,它将父节点置于子节点之间;这造成了交错效应。如何使故障节点不影响其他节点的布局?我已经把线条画直了,就像他们想要的照片一样,但它仍然有交错的布局。
当前样式:
想要的风格:
编辑: 点码
strict graph "" {
graph [bb="0,0,562,490",
bgcolor="#666666",
fontcolor=white,
fontname=monospace,
label="ACI MSC - Create Bridge Domain - L3",
labelfontsize=40,
labelloc=t,
lheight=0.19,
lp="281,479",
lwidth=3.30,
newrank=yes,
nodesep=0.2,
outputorder=edgesfirst,
overlap=compress,
ranksep=0.5,
splines=spline
];
node [fillcolor=white,
fixedsize=True,
fontcolor=black,
fontname=monospace,
label="\N",
shape=rectangle,
style=filled,
width=5.125
];
edge [fontname=monospace,
fontsize=15,
penwidth=2
];
Start [color=white,
fillcolor=blue,
fixedsize=false,
fontcolor=white,
height=0.5,
pos="377.5,450",
shape=oval,
width=1];
"ACIMSC-CreateSchemaandAddTemplate-Sub" [height=0.5,
pos="377.5,378"];
Start -- "ACIMSC-CreateSchemaandAddTemplate-Sub" [color=green,
pos="377.5,431.83 377.5,421 377.5,407.29 377.5,396.41"];
"ACIMSC-AddBridgeDomaintoTemplate" [height=0.5,
pos="274.5,306"];
"ACIMSC-CreateSchemaandAddTemplate-Sub" -- "ACIMSC-
AddBridgeDomaintoTemplate" [color=green,
pos="351.51,359.83 335.89,348.92 316.1,335.08 300.48,324.16"];
Fail [color=white,
fillcolor=red,
fixedsize=false,
fontcolor=white,
height=0.5,
pos="421.5,18",
shape=oval,
weight=0,
width=1];
"ACIMSC-CreateSchemaandAddTemplate-Sub" -- Fail [color=red,
pos="423.22,359.95 439.3,351.39 455.96,339.56 466.5,324
489.24,290.42 481.5,274.55 481.5,234 481.5,234 481.5,234
481.5,162
481.5,120.71 \
475.54,109.6 458.5,72 452.5,58.75 443.25,45.25 435.5,35.063"];
"ACIMSC-AddBridgeDomaintoTemplate" -- Fail [color=red,
pos="356.37,288 391.19,278.55 426.17,266.02 436.5,252
485.39,185.63 447.55,77.845 429.6,35.692"];
VscaleACIMultisiteAddSubnettoBridgeDomain [height=0.5,
pos="244.5,234"];
"ACIMSC-AddBridgeDomaintoTemplate" --
VscaleACIMultisiteAddSubnettoBridgeDomain [color=green,
pos="266.93,287.83 262.42,277 256.7,263.29 252.17,252.41"];
VscaleACIMultisiteAddSubnettoBridgeDomain -- Fail [color=red,
pos="325.05,215.91 360.06,206.35 395.58,193.76 406.5,180
439.94,137.85 431.92,68.723 425.62,36.11"];
"ACIMSC-AddL3OuttoSiteBridgeDomain-Sub" [height=0.5,
pos="214.5,162"];
VscaleACIMultisiteAddSubnettoBridgeDomain -- "ACIMSC-
AddL3OuttoSiteBridgeDomain-Sub" [color=green,
pos="236.93,215.83 232.42,205 226.7,191.29 222.17,180.41"];
"ACIMSC-AddL3OuttoSiteBridgeDomain-Sub" -- Fail [color=red,
pos="309.72,143.87 333.49,135.88 357.57,124.41 376.5,108
398.54,88.885 410.97,56.41 416.96,36.139"];
"ACIMSC-DeployTemplatetoSites" [height=0.5,
pos="184.5,90"];
"ACIMSC-AddL3OuttoSiteBridgeDomain-Sub" -- "ACIMSC-
DeployTemplatetoSites" [color=green,
pos="206.93,143.83 202.42,133 196.7,119.29 192.17,108.41"];
"ACIMSC-DeployTemplatetoSites" -- Fail [color=red,
pos="244,71.924 290.62,57.761 353.6,38.629 390.65,27.373"];
Complete [color=white,
fillcolor="#129112",
fixedsize=false,
fontcolor=white,
height=0.5,
pos="184.5,18",
shape=oval,
width=1.3321];
"ACIMSC-DeployTemplatetoSites" -- Complete [color=green,
pos="184.5,71.831 184.5,61 184.5,47.288 184.5,36.413"];
}
我无法渲染你的代码来实现你的图片,但我将要建议的技术无论如何都应该有效。
我编写了一个类似的基本示例代码:
digraph {
node [shape=rect]
a -> b -> c -> d -> e -> f
success [shape=oval]
f -> success
{
rank=max
failure [shape=oval]
}
{a b c d e f} -> failure
}
转载您的问题后得到以下图片:
第一个可能的解决方案可能是将constraint=false
属性添加到通往falure
节点的边缘。此属性就是这样做的 - 防止边缘影响布局。
digraph {
node [shape=rect]
a -> b -> c -> d -> e -> f
success [shape=oval]
f -> success
{
rank=max
failure [shape=oval]
}
{a b c d e f} -> failure [constraint=false]
}
结果:
第二种可能的解决方案 是增加需要保持笔直的边缘的 weight 属性。权重较高的边往往比其他边更短更直:
digraph {
node [shape=rect]
a -> b -> c -> d -> e -> f [weight=10]
success [shape=oval]
f -> success
{
rank=max
failure [shape=oval]
}
{a b c d e f} -> failure
}
结果: