首页 > 解决方案 > 直观地显示数据中的层次结构并根据 Python 中的搜索条件过滤掉路径

问题描述

我在 excel 中有如下数据,我想以图形形式显示数据,显示层次结构。此外,当搜索像孩子这样的搜索条件时,只需要显示从顶部到该节点的路径。我是 python 新手,我正在尝试学习使用 Python 可视化层次结构数据。我还为此检查了 Python Library NetworKx。有人可以指导我正确的方向。数据:

   child  parent
1   2010    1000
7   2100    1000
5   2110    1000
3   3000    2110
2   3011    2010
4   3033    2100
0   3102    2010
6   3111    2110

输出:

图形

标签: pythonpython-3.x

解决方案


这个问题似乎由两部分组成:搜索和可视化。您提到的库似乎非常适合这两项任务,但也许您正在寻找更轻量级的解决方案。

一种方法是将一些有限的自己的代码与Graphviz结合使用(它也具有出色的python 绑定)。鉴于解析的数据,它会是这样的:

from graphviz import Digraph

# child-parent pairs
data = [(2010, 1000), (2100, 1000), (2110, 1000),
        (3000, 2110), (3011, 2010), (3033, 2100),
        (3102, 2010), (3111, 2110)]

g = Digraph(format='svg')

for child, parent in data:
    g.edge(str(parent), str(child))

g.render('graph')

由graphviz制作的图表

您还可以通过设置color属性来突出显示节点和边。请注意,Graphviz 仅处理可视化。您必须编写自己的Node和/或Edge类来搜索路径。


推荐阅读