如何解决Graphviz如何修复群集的x位置
目前,我正在尝试修复群集的x位置,因为它们似乎四处移动以创建混乱的图形。所有子图都有rank=same
和newrank=true
。仅对于从一个群集到另一个群集的边缘,constraint
的值设置为true
。
尝试了http://martin-loetzsch.de/S-DOT/constraint.html中的许多选项,但无法正常使用。有谁知道为什么子图像上面那样水平移动?
// layered_view
digraph layered_view {
bgcolor=transparent fontsize=8 nodesep=0.2 rankdir=TB splines=ortho
switch_1 -> lake [label="" color=gold4 constraint=True dir=both style=solid]
switch_1 -> lake [label="" color=chartreuse4 constraint=True dir=both style=solid]
switch_1 -> switch_2 [label="" color=gold4 constraint=True dir=both style=solid]
switch_1 -> switch_2 [label="" color=chartreuse4 constraint=True dir=both style=solid]
switch_1 -> azure_1 [label="" color=gold4 constraint=True dir=both style=solid]
switch_1 -> azure_1 [label="" color=chartreuse4 constraint=True dir=both style=solid]
switch_2 -> watson [label="" color=goldenrod4 constraint=True dir=both style=solid]
lake -> tsX [label="" color=chartreuse4 constraint=True dir=both style=solid]
lake -> ptX [label="" color=chartreuse4 constraint=True dir=both style=solid]
switch_1 -> dropBox [label="" color=chartreuse4 constraint=True dir=both style=solid]
switch_1 -> ptX [label="" color=gold4 constraint=True dir=both style=solid]
switch_1 -> tsX [label="" color=goldenrod4 constraint=True dir=both style=solid]
switch_1 -> watson [label="" color=goldenrod4 constraint=True dir=both style=solid]
// software
subgraph cluster_software {
bgcolor=green color=black concentrate=true fontsize=8 label=Software newrank=true rank=same splines=ortho
// applications
subgraph cluster_applications {
bgcolor=green color=black concentrate=true fontsize=8 label=Applications newrank=true rank=same splines=ortho
tsX [label=tsX color=black fillcolor=chartreuse1 fixedsize=true shape=rectangle style=filled width=1.3 xlabel=""]
ptX [label=ptX color=black fillcolor=chartreuse1 fixedsize=true shape=rectangle style=filled width=1.3 xlabel=""]
}
// cloud
subgraph cluster_cloud {
bgcolor=green color=black concentrate=true fontsize=8 label=Cloud newrank=true rank=same splines=ortho
azure_1 [label=azure_1 color=black fillcolor=darkolivegreen1 fixedsize=true shape=rectangle style=filled width=1.3 xlabel=""]
dropBox [label=dropBox color=black fillcolor=darkolivegreen1 fixedsize=true shape=rectangle style=filled width=1.3 xlabel=""]
}
}
// systems
subgraph cluster_systems {
bgcolor=green color=black concentrate=true fontsize=8 label=Systems newrank=true rank=same splines=ortho
// computing
subgraph cluster_computing {
bgcolor=green color=black concentrate=true fontsize=8 label=Computing newrank=true rank=same splines=ortho
"ex-uni" [label="ex-uni" color=black fillcolor=cadetblue fixedsize=true shape=rectangle style=filled width=1.3 xlabel=""]
}
// sensors
subgraph cluster_sensors {
bgcolor=green color=black concentrate=true fontsize=8 label=Sensors newrank=true rank=same splines=ortho
watson [label=watson color=black fillcolor=blue fixedsize=true shape=rectangle style=filled width=1.3 xlabel=""]
}
// storage
subgraph cluster_storage {
bgcolor=green color=black concentrate=true fontsize=8 label=Storages newrank=true rank=same splines=ortho
lake [label=lake color=black fillcolor=deepskyblue2 fixedsize=true shape=rectangle style=filled width=1.3 xlabel=""]
}
}
// network
subgraph cluster_network {
bgcolor=green color=black concentrate=true fontsize=8 label=Network newrank=true rank=same splines=ortho
// switch
subgraph cluster_switch {
bgcolor=green color=black concentrate=true fontsize=8 label=Switch newrank=true rank=same splines=ortho
switch_1 [label=switch_1 color=black fillcolor=gold fixedsize=true shape=rectangle style=filled width=1.3 xlabel=""]
}
}
// artifacts
subgraph cluster_artifacts {
bgcolor=green color=black concentrate=true fontsize=8 label=Artifacts newrank=true rank=same splines=ortho
switch_2 [label=switch_2 color=black fillcolor=white fixedsize=true shape=rectangle style=filled width=1.3 xlabel=""]
}
}
解决方法
我还没有找到直接移动集群的简单方法。这是可以执行您想要的(我认为)的消息,并且不会过多地混淆源代码:
- 用/ * ... * /注释掉所有边缘(边缘导致不对齐)
- 在最后添加这些行(以产生所需的对齐方式):
switch_1 -> switch_2 -> watson [style=invis] watson -> {azure_1 tsX} [style=invis]
- 使用 -Tdot 运行点作为输出文件格式
- 编辑输出文件,然后重新插入注释掉的边缘
- 使用-n选项运行neato以固定节点和群集并添加边缘
neato -n -Tpng mylile.dot> myfile.png
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。