Код Python для рендеринга нескольких графиков graphviz в одном PDF-файле, по одному на странице

Рассмотрим два орграфа graphviz g1 и g2, определенные в Python следующим образом:

from graphviz import Digraph

g1 = Digraph(engine = "neato", node_attr={'shape':'record}, graph_attr={'splines':'ortho'})
g1.node('A')
g1.node('B')
g1.node('C')
g1.edge('A','B')
g1.edge('A','C')

g2 = Digraph(engine = "neato", node_attr={'shape':'record}, graph_attr={'splines':'ortho'})
g2.node('D')
g2.node('E')
g2.node('F')
g2.edge('D','E')
g2.edge('E','F')
g2.edge('D','F')

Теперь я могу визуализировать как g1, так и g2 в двух разных PDF-файлах, используя:

g1.render('g1_output.gv',view = 'True')
g2.render('g2_output.gv',view = 'True')

Но я хочу отобразить как g1, так и g2 в одном PDF-файле, по одному на страницу. Хотя я мог найти точечный скрипт для этого по этой ссылке (Рендеринг сценария DOT с несколькими графиками в PDF по одному графику на страницу), я не смог найти способ сделать то же самое в Python. Более того, я использую neato engine, а не dot. Также я не могу переключаться на точку, так как необходимы ортогональные шлицы, а точка их не поддерживает.

Еще одно решение для этого - два рендера g1 и g2 в двух разных PDF-файлах и объединение их позже, но я хочу знать, есть ли лучшее решение, чем это.

P.S: Графики, определенные здесь, предназначены только для иллюстрации и отличаются от оригинала.


person Srihitha Tangudu    schedule 07.05.2021    source источник