Как вывести многострочный текст в ноде Graphviz
Граф создается в цикле - данных много. В аргумент label надо вывести многострочный текст с учетом фиксированной длины фигуры. Решение с переводом строки "\n" не очень удобно.
Условный пример кода:
from graphviz import Graph
g = Graph('G', node_attr={'shape':'box'})
g.node('A', label='Структурированное хранение типовых проектно-конструкторских решений',
width='2.5', fixedsize='true')
g
Ответы (1 шт):
Автор решения: Boris Zhuravlev
→ Ссылка
Не знаю, что означает отсутствие ответа на мой вопрос - кажется, спросил о простой вещи... Если нет решения, исключающее применения "\n", то у меня получилось следующее:
def multiline_label(label, align='\n', len_string=25):
word_label = label.split(' ')
count_char = 0
label_out = ''
for i, word in enumerate(word_label):
count_char += len(word)
if count_char <= len_string:
label_out = ''.join(label_out + ' ' + word)
else:
label_out = ''.join(label_out + align)
count_char = 0
label_out = ''.join(label_out + ' ' + word)
return label_out
from graphviz import Graph
g = Graph('G', node_attr={'shape':'box'}, filename='my_comment.gv', format='svg')
label = 'Структурированное хранение типовых проектно-конструкторских решений'
g.node('A', label=multiline_label(label), style='rounded',
width='2.5', fixedsize='false')
g
Спасибо, конечно...