如何使用 2 列 pandas 数据框使用 python graphviz 从 webgraphviz 重现结果
How do I reproduce results from webgraphviz with python graphviz using 2 column pandas dataframe
我有一个包含父进程和子进程 ID 的两列 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
.. ... ...
我已经下载了 graphviz python 库,但同时为了看看我能做什么,我前往 http://www.webgraphviz.com/ 看看能做什么。我使用了相同的数据集,看起来还不错。
我搜索了一下,但找不到使用 python 库 graphviz 复制它的好方法。任何人都可以仅使用 2 列和可能的小示例为我指出正确的方向吗?
这是我的解决方案:
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()
如果您在 windows 上使用 运行 graphviz 时遇到一些问题,您可能需要将 graphviz 的 bin 文件添加到 windows PATH,为此您可以使用:
import os
os.environ["PATH"] += os.pathsep + <path to the bin folder>
尽情享受吧!
我有一个包含父进程和子进程 ID 的两列 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
.. ... ...
我已经下载了 graphviz python 库,但同时为了看看我能做什么,我前往 http://www.webgraphviz.com/ 看看能做什么。我使用了相同的数据集,看起来还不错。
我搜索了一下,但找不到使用 python 库 graphviz 复制它的好方法。任何人都可以仅使用 2 列和可能的小示例为我指出正确的方向吗?
这是我的解决方案:
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()
如果您在 windows 上使用 运行 graphviz 时遇到一些问题,您可能需要将 graphviz 的 bin 文件添加到 windows PATH,为此您可以使用:
import os
os.environ["PATH"] += os.pathsep + <path to the bin folder>
尽情享受吧!