Как мне воспроизвести результаты из webgraphviz с python graphviz, используя 2 колонки pandas dataframe
У меня есть два столбца данных pandas с идентификаторами родительского и дочернего процессов, который выглядит следующим образом:
ChildID ParentID
0 460 580
1 580 716
2 460 724
3 716 840
4 716 812
5 724 884
6 716 800
7 1424 2028
8 2280 2368
9 2368 2480
10 2948 2916
11 3312 3896
12 3312 3468
13 3312 3996
16 4 460
17 460 480
18 3244 4168
19 1324 4796
20 5888 5048
21 2504 4424
22 1324 7584
23 2040 1400
24 1224 2452
.. ... ...
Я скачал библиотеку Python Graphviz, но пока я хотел посмотреть, что я могу сделать, я отправился на http://www.webgraphviz.com/ чтобы узнать, что можно сделать. Я использовал тот же набор данных, и он выглядит довольно хорошо.
Я немного искал, но у меня возникли проблемы с поиском хорошего способа воспроизвести это, используя библиотеку python graphviz. Кто-нибудь может указать мне правильное направление, просто используя 2 столбца, возможно, с небольшим примером?
1 ответ
Вот мое решение:
from graphviz import Graph
g = Graph('processs', filename='process.gv', engin='sfdp')
# run over all the rows and for each row add a new edge to the graph
for index, row in df.iterrows():
g.edge(str(row['ChildID']), str(row['ParentID']))
g.view()
Если у вас есть некоторые проблемы с запуском graphviz в Windows, вам, вероятно, нужно добавить bin-файлы graphviz в Windows PATH, для этого вы можете использовать:
import os
os.environ["PATH"] += os.pathsep + <path to the bin folder>
Наслаждайтесь!