Как использовать 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.