如何在graphviz中使用SVG自定义节点形状?

时间:2011-09-01 20:38:08

标签: svg graphviz

我正在尝试使用graphvizdot命令行工具,更具体一点)来生成图形的SVG布局。我想使用我的Inkscape生成的SVG文件来定义节点形状,我按照graphviz tutorial上的说明操作。我正在输出SVG,所以理论上,通过在图中将形状声明为<symbol><use>,这应该很容易实现。 This e-mail让我相信功能已经实现,我无法弄清楚如何使用它。

我尝试将节点的image属性指向自定义形状SVG文件。我还尝试将节点的shape设置为custom,并将shapefile指向形状SVG。如果我输入了无效的文件名,dot会抱怨,其插件图表示它可以读取SVG。我猜测我使用了错误的属性,或者我尝试过的SVG文件有问题。

无论价值多少,我都会在viewBox属性上设置<svg>

1 个答案:

答案 0 :(得分:9)

graphviz仅支持使用绝对单位(像素,英寸等)在width上设置height<svg>属性的SVG输入。 Inkscape在height="100%" width="100%" viewBox="0 0 width_in_pixels height_in_pixels"元素上输出<svg>作为属性。

我提交了bug report,并且graphviz开发人员向我指出了help for the image attribute,其中描述了在自定义节点形状中使用SVG的要求。