GraphViz - 将边缘标签链接到另一个点图

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

我一直在寻找解决方案,但我似乎无法找到一个用于将边缘标签链接到另一个GraphViz Dot Graph。例如,如果我有一个名为'mydotimage2.svg'的图形,则由以下内容生成:

digraph G
{
    graph [compound = true];

    subgraph cluster_0
    {
        node [style = bold];
        "A" "B" "C";
    }

    subgraph cluster_1
    {
        node [style = bold];
        "One" "Two" "Three";
    }

    "A" -> "One" [lhead = cluster_1, ltail = cluster_0, label = "Falafel", href = "~/workspace/GraphViz/mydotimage1.svg"]
}

如果我通过以下方式在终端中创建'mydotimage2.svg'SVG图像:

dot -T svg mydotimage2.dot > mydotimage2.svg

图像在我的浏览器中打开很好,并且生成的图像中从A到One的边缘标签是可单击的,但是也不会打开同一GraphViz目录中的mydotimage1.svg。有谁知道如何做到这一点?我真的很感激。提前致谢。

svg graphviz dot
2个回答
1
投票

你应该使用相对路径。也就是说,而不是href = "~/workspace/GraphViz/mydotimage1.svg"使用href = "./mydotimage1.svg"

顺便说一句,您可以指定所需的输出文件名作为>的参数,而不是使用管道重定向(dot)。 只需将-omydotimage2.svg附加到命令行即可。其中“mydotimage2.svg”是您要写入的文件名。


1
投票

这是我在机器上观察到的,我想这是一个普遍的问题:

graphviz确实扩展了波浪号~,但它没有移除波浪号。在我的情况下,当我点击图表中的超链接时,我将/home/rainer/~/workspace/GraphViz/mydotimage1.svg视为图像位置。这显然不存在。对我来说看起来像个错误......

解决方法/解决方法是在我的情况下用脚本文件夹路径替换脚本中的~

href = "/home/rainer/workspace/GraphViz/mydotimage1.svg"

它按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.