我正在尝试使用graphviz(dot
命令行工具,更具体一点)来生成图形的SVG布局。我想使用我的Inkscape生成的SVG文件来定义节点形状,我按照graphviz tutorial上的说明操作。我正在输出SVG,所以理论上,通过在图中将形状声明为<symbol>
和<use>
,这应该很容易实现。 This e-mail让我相信功能已经实现,我无法弄清楚如何使用它。
我尝试将节点的image
属性指向自定义形状SVG文件。我还尝试将节点的shape
设置为custom
,并将shapefile
指向形状SVG。如果我输入了无效的文件名,dot
会抱怨,其插件图表示它可以读取SVG。我猜测我使用了错误的属性,或者我尝试过的SVG文件有问题。
无论价值多少,我都会在viewBox
属性上设置<svg>
。
答案 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的要求。