В моем случае мне пришлось заменить следующие строки в моей старой программе (pygraphviz, работающей с python 2.7):
my_graph = graphviz.AGraph(id="my_graph", name="my_graph", file=self.fileName)
my_graph.layout(prog='dot')
my_graph.draw(path="my_graph3.svg", format="svg")
с:
from graphviz import Source, render
my_graph = graphviz.Digraph(name="my_graph", engine='dot')
my_graph.src = Source(srcStr, filename=None, directory=None, format='svg', engine='dot', encoding='utf-8')
my_graph.src.render('dot', 'svg', 'my_graph3.svg',renderer='cairo', formatter='cairo')
srcStr - это строка типа:
digraph "pet-shop" {
graph [rankdir=LR]
node [shape=plaintext]
edge [arrowhead=vee arrowsize=2]
parrot
dead
parrot -> dead
}
Хотя я думал, что это создаст файл my_graph3.svg, на самом деле он создает папку svg с файлом 'dot.cairo.cairo.svg' внутри.
Кроме того, потребовалось много проб и ошибок, чтобы получить это, поэтому я публикую его, если это поможет.
Любые комментарии, связанные с улучшением параметров приветствуются.