2011-09-01 47 views
10

我试图使用graphviz(更具体的dot命令行工具)来生成图形的SVG布局。我想用我的Inkscape-生成的SVG文件来定义节点形状,并按照graphviz tutorial上的说明操作。我在输出SVG,理论上,通过在图中声明形状为<symbol> s和<use>这应该很容易。 This e-mail让我相信该功能已经实现,我只是不知道如何使用它。如何将SVG用于graphviz中的自定义节点形状?

我试过让节点的image属性指向自定义形状的SVG文件。我还尝试将节点的shape设置为custom,并将shapefile指向SVG形状。 dot抱怨如果我把一个无效的文件名,它的插件图表明它可以读取SVG。我在猜测要么是我使用了错误的属性,要么是我尝试过的SVG文件有问题。

无论什么值得,我都有viewBox设置在<svg>属性上。

回答

8

graphviz仅支持使用绝对单位(像素,英寸等)将widthheight属性设置为<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的要求。