Может ли графвиз ограничить граф определенной шириной? - PullRequest
1 голос
/ 06 марта 2019

Я использую Graphviz из Python, чтобы нанести на карту японские кандзи и их отношения.Я экспортирую вывод как svg и использую sfdp в качестве движка рендеринга.Выход примерно квадратный (3000x3000).Мне было интересно, есть ли способ указать ограничение, чтобы вывод был больше похож на вертикальный прямоугольник (например, 5000x1000), чем на квадрат.Кажется, что параметры размера в основном работают с масштабом получаемого изображения, а не с позиционированием самих узлов.Но у меня есть много разных компонентов подключения, поэтому их будет легко перемещать.То, что я пытаюсь сделать, невозможно?Спасибо!

Ответы [ 2 ]

1 голос
/ 07 марта 2019

Попробуйте поиграть с атрибутом ratio:

...

Если коэффициент является числовым, он принимается за желаемое соотношение сторон. Затем, если фактическое соотношение сторон меньше требуемого соотношения, высота рисования увеличивается до достижения желаемого соотношения; если фактическое соотношение больше этого желаемого, ширина чертежа увеличивается.

Итак, если исходный график был таким:

enter image description here

Добавление атрибута graph [ratio="1.5"] сделает его похожим на:

enter image description here

UPD: также обратите внимание на то, как атрибут ratio работает в паре с атрибутом size, возможно, комбинация подойдет вам лучше всего. Подробное объяснение в соотношении документов по ссылке, которую я разместил.

0 голосов
/ 07 марта 2019

sfdp, поскольку он использует пружинную модель, имеет тенденцию создавать квадратные графики.Однако, если вы используете dot, у вас есть добавленные атрибуты, такие как rank и rankdir, чтобы придать вашему графику более точный вид.

Вы можете сослаться на Атрибуты Node, Edge и Graph чтобы узнать, какие атрибуты поддерживает sfdp.

...