我一直在寻找解决方案,但我似乎无法找到一个用于将边缘标签链接到另一个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。有谁知道如何做到这一点?我真的很感激。提前谢谢。
答案 0 :(得分:1)
这是我在机器上观察到的,我想这是一个普遍的问题:
graphviz
确实将代字号~
展开,但不会删除代字号。在我的情况下,当我点击图表中的超链接时,我看到/home/rainer/~/workspace/GraphViz/mydotimage1.svg
作为图像位置。这显然不存在。对我来说看起来像个错误......
解决方案/解决方法是将脚本中的~
替换为您的主文件夹路径,在我的情况下
href = "/home/rainer/workspace/GraphViz/mydotimage1.svg"
按预期工作。
答案 1 :(得分:1)
您应该使用相对路径。
也就是说,而不是href = "~/workspace/GraphViz/mydotimage1.svg"
使用href = "./mydotimage1.svg"
BTW,您可以指定所需的输出文件名作为>
的参数,而不是使用管道重定向(dot
)。
只需将-omydotimage2.svg
附加到命令行即可。
在哪里" mydotimage2.svg"是您要写入的文件名。