python - 直观地显示数据中的层次结构并根据 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
输出:
解决方案
这个问题似乎由两部分组成:搜索和可视化。您提到的库似乎非常适合这两项任务,但也许您正在寻找更轻量级的解决方案。
一种方法是将一些有限的自己的代码与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')
您还可以通过设置color
属性来突出显示节点和边。请注意,Graphviz 仅处理可视化。您必须编写自己的Node
和/或Edge
类来搜索路径。
推荐阅读
- python - 如何使用基本库计算此类列表的频率?
- javascript - HTML5 重置按钮:保存/提交后更改初始值
- django - 覆盖基于通用类的表单并使用自定义表单的属性?
- unity3d - 如何在 Unity 中制作在线“蜂鸣器”
- r - R:当交互不显着时,如何显示 2-way ANOVA 的均值分离字母?
- c# - 模仿静态类型列表的 C# 接口
- javascript - ChartJS 在悬停时显示抖动
- python - 如何使用python将文件和目录从源复制到目标
- python - 如何在不使用 R reticulate 包的情况下从 Anaconda 在 RStudio 中运行 Python 代码(直接使用 Python 解释器,无需任何 R 参与
- java - 在 Java 中转义非拉丁字符