更紧凑的层次布局,适用于dot/Graphviz

5
我使用dot生成以下PDF:enter image description here 我的主要问题是,即使在A3上打印,字符大小也太小了。此外,图表似乎可以更紧凑。例如,蓝色、绿色和棕色节点位于左上角,导致宽度加大,但我看不到任何理由,不能将前两行整体向右移动,以至少缩小20%的宽度。我在最后附上.gv文件。
由于我自动生成.gv文件,所以我只能修改图形级别属性或所有节点和边的属性,或更改dot调用,但我无法微调坐标或特定节点。
你看到有明显的方法可以使布局更紧凑,从而允许更大的字符大小吗?
我使用的调用是:
 dot -Gsize="16.52,11.68" -Gratio="fill"  -Glandscape=false -Gsplines=ortho -Tpdf graph.gv -o graph.gv.pdf

graph.gv file

digraph G {

node [
    fontname="Times-Bold"
]
concentrate=true
"schemas/toolkit.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="cyan"
    label = "{toolkit.xsd|vt.edu|OAI/metadata/toolkit}"
]
"schemas/simpledc20021212.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="salmon3"
    label = "{simpledc20021212.xsd|other domain|http://purl.org/dc/elements/1.1/}"
]
"schemas/stc-v1.30.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{stc-v1.30.xsd|ivoa|STC/stc-v1.30.xsd}"
]
"schemas/oai_dc.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="limegreen"
    label = "{oai_dc.xsd|openarchives|OAI/2.0/oai_dc/}"
]
"schemas/VOApplication.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{VOApplication.xsd|ivoa|VOApplication/v1.0rc1}"
]
"schemas/xml.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="violetred1"
    label = "{xml.xsd|w3.org|XML/1998/namespace}"
]
"schemas/xlink.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="violetred1"
    label = "{xlink.xsd|w3.org|1999/xlink}"
]
"schemas/OpenSkyNode-v0.2.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{OpenSkyNode-v0.2.xsd|ivoa|SkyNode/v0.2}"
]
"schemas/VORegistry-v1.0.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{VORegistry-v1.0.xsd|ivoa|VORegistry/v1.0}"
]
"schemas/VOResource-v1.0.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{VOResource-v1.0.xsd|ivoa|VOResource/v1.0}"
]
"schemas/ConeSearch-v1.0.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{ConeSearch-v1.0.xsd|ivoa|ConeSearch/v1.0}"
]
"schemas/CEAService.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{CEAService.xsd|ivoa|CEA/v1.0rc1}"
]
"schemas/VOTable.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{VOTable.xsd|ivoa|VOTable/v1.1}"
]
"schemas/CEABase.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{CEABase.xsd|ivoa|CEA/base/v1.0rc1}"
]
"schemas/STAP.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="yellow"
    label = "{STAP.xsd|astrogrid urn|STAP:v1.0}"
]
"schemas/VODataService-v1.0.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{VODataService-v1.0.xsd|ivoa|VODataService/v1.0}"
]
"schemas/SIA-v1.0.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{SIA-v1.0.xsd|ivoa|SIA/v1.0}"
]
"schemas/SSA-v0.4.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{SSA-v0.4.xsd|ivoa|SSA/v0.4}"
]
"schemas/RegistryInterface-v1.0.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{RegistryInterface-v1.0.xsd|ivoa|RegistryInterface/v1.0}"
]
"schemas/SSA-v1.0.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{SSA-v1.0.xsd|ivoa|SSA/v1.0}"
]
"schemas/TAPRegExt-v1.0.xsd" [
    shape = "record"
    style="bold, filled"
    fillcolor="lightskyblue"
    label = "{TAPRegExt-v1.0.xsd|ivoa|TAPRegExt/v1.0}"
]
"NFhttp://www.ivoa.net/xml/VOMetadata/v0.1" [
    shape = "record"
    color = "magenta1"
    fillcolor = "lemonchiffon1"
    style="bold, dashed, rounded, filled"
    label = "{ivoa|VOMetadata/v0.1}"
]
"NFhttp://www.w3.org/2001/XMLSchema-instance" [
    shape = "record"
    color = "magenta1"
    fillcolor = "lemonchiffon1"
    style="bold, dashed, rounded, filled"
    label = "{w3.org|2001/XMLSchema-instance}"
]
    "schemas/stc-v1.30.xsd" -> "schemas/xlink.xsd" [color="blue"]
    "schemas/oai_dc.xsd" -> "schemas/simpledc20021212.xsd" [color="blue"]
    "schemas/VOApplication.xsd" -> "schemas/VOResource-v1.0.xsd" [color="blue"]
    "schemas/VOApplication.xsd" -> "NFhttp://www.ivoa.net/xml/VOMetadata/v0.1" [color="blue"]
    "schemas/OpenSkyNode-v0.2.xsd" -> "schemas/VOResource-v1.0.xsd" [color="blue"]
    "schemas/OpenSkyNode-v0.2.xsd" -> "schemas/VODataService-v1.0.xsd" [color="blue"]
    "schemas/OpenSkyNode-v0.2.xsd" -> "NFhttp://www.ivoa.net/xml/VOMetadata/v0.1" [color="blue"]
    "schemas/VORegistry-v1.0.xsd" -> "schemas/VOResource-v1.0.xsd" [color="blue"]
    "schemas/VORegistry-v1.0.xsd" -> "NFhttp://www.ivoa.net/xml/VOMetadata/v0.1" [color="blue"]
    "schemas/VOResource-v1.0.xsd" -> "NFhttp://www.ivoa.net/xml/VOMetadata/v0.1" [color="blue"]
    "schemas/ConeSearch-v1.0.xsd" -> "schemas/VOResource-v1.0.xsd" [color="blue"]
    "schemas/ConeSearch-v1.0.xsd" -> "NFhttp://www.ivoa.net/xml/VOMetadata/v0.1" [color="blue"]
    "schemas/CEAService.xsd" -> "schemas/VOTable.xsd" [color="blue"]
    "schemas/CEAService.xsd" -> "schemas/VODataService-v1.0.xsd" [color="blue"]
    "schemas/CEAService.xsd" -> "schemas/VOResource-v1.0.xsd" [color="blue"]
    "schemas/CEAService.xsd" -> "NFhttp://www.ivoa.net/xml/VOMetadata/v0.1" [color="blue"]
    "schemas/CEAService.xsd" -> "schemas/CEABase.xsd" [color="blue"]
    "schemas/CEAService.xsd" -> "schemas/VOApplication.xsd" [color="blue"]
    "schemas/CEABase.xsd" -> "schemas/VODataService-v1.0.xsd" [color="blue"]
    "schemas/STAP.xsd" -> "schemas/VOResource-v1.0.xsd" [color="blue"]
    "schemas/VODataService-v1.0.xsd" -> "schemas/VOResource-v1.0.xsd" [color="blue"]
    "schemas/VODataService-v1.0.xsd" -> "schemas/stc-v1.30.xsd" [color="blue"]
    "schemas/VODataService-v1.0.xsd" -> "NFhttp://www.ivoa.net/xml/VOMetadata/v0.1" [color="blue"]
    "schemas/SIA-v1.0.xsd" -> "schemas/VOResource-v1.0.xsd" [color="blue"]
    "schemas/SIA-v1.0.xsd" -> "schemas/VODataService-v1.0.xsd" [color="blue"]
    "schemas/SIA-v1.0.xsd" -> "NFhttp://www.ivoa.net/xml/VOMetadata/v0.1" [color="blue"]
    "schemas/SSA-v0.4.xsd" -> "schemas/VOResource-v1.0.xsd" [color="blue"]
    "schemas/SSA-v0.4.xsd" -> "schemas/VODataService-v1.0.xsd" [color="blue"]
    "schemas/SSA-v0.4.xsd" -> "NFhttp://www.ivoa.net/xml/VOMetadata/v0.1" [color="blue"]
    "schemas/RegistryInterface-v1.0.xsd" -> "schemas/VOResource-v1.0.xsd" [color="blue"]
    "schemas/SSA-v1.0.xsd" -> "schemas/VOResource-v1.0.xsd" [color="blue"]
    "schemas/SSA-v1.0.xsd" -> "NFhttp://www.ivoa.net/xml/VOMetadata/v0.1" [color="blue"]
    "schemas/TAPRegExt-v1.0.xsd" -> "schemas/VOResource-v1.0.xsd" [color="blue"]
    "schemas/TAPRegExt-v1.0.xsd" -> "NFhttp://www.ivoa.net/xml/VOMetadata/v0.1" [color="blue"]
    "schemas/TAPRegExt-v1.0.xsd" -> "NFhttp://www.w3.org/2001/XMLSchema-instance" [color="blue"]

}

1
仅仅增加字体大小不就可以解决问题了吗? - svick
它确实有一点帮助,但只有当我将其设置为过高的值(例如40个点)时,即使如此,在左上角的反向“L”形蓝绿棕色形状仍然停留在那里,不必要地增加了图表的宽度,当整个前两行都可以向右移动。 - Marcus Junius Brutus
1个回答

8
unflatten实用工具可以使图形更加紧凑。尝试下面的命令行:
unflatten -f -l 2 graph.gv | dot -Gsize="16.52,11.68" -Gratio="fill"  -Glandscape=false -Gsplines=ortho -Tpdf -o graph.gv.pdf

根据生成的各种自动图形,可能有一些其他的unflatten值更适合涵盖它们所有。


谢谢你的建议。不过对我没用,而且它改变了一些边缘的样式。可能是因为我在https://dev59.com/OHA75IYBdhLWcg3wv70j中使用了子图技巧。 - Stéphane Gourichon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接