Как использовать SVG для пользовательских node фигур в graphviz?

Я пытаюсь использовать graphviz (более конкретно, инструмент командной строки dot) для генерации SVG макет графика. Я хотел бы использовать Inkscape -генерированные файлы SVG для определения форм node, и я выполнил инструкции в учебник по графику. Я выводил SVG, поэтому теоретически это должно быть легко сделать, объявив фигуры как <symbol> и <use> их на диаграмме. Это электронное письмо заставляет меня поверить, что функциональность была реализована, и я просто не могу понять, как ее использовать.

Я попробовал использовать атрибут node image, указывающий на файл SVG пользовательской формы. Я также попытался установить node shape на custom и указывая shapefile на SVG формы. dot жалуется, если я помещаю недопустимое имя файла, а его плагин-граф предлагает, чтобы он мог читать SVG. Я предполагаю, что либо я использую неправильные атрибуты, либо что-то не так с файлами SVG, которые я пробовал.

Что бы это ни стоило, у меня есть viewBox, установленный в атрибуте <svg>.

Ответ 1

graphviz поддерживает только вход SVG, где атрибуты width и height установлены на <svg> с использованием абсолютных единиц (пикселей, дюймов и т.д.). Inkscape выводит height="100%" width="100%" viewBox="0 0 width_in_pixels height_in_pixels" в качестве атрибутов в элементе <svg>.

Я подал отчет об ошибке , и разработчик graphviz указал мне на help для атрибута изображения, в котором описываются требования к использованию SVG в пользовательских формах node.