標籤:

如何利用json數據生成樹圖

樹圖渲染命令行工具

本項目封裝了 antvis/g6,利用 JSON 數據生成 HTML 格式的樹圖

安裝

pip 安裝

$ pip install pytm-clin

源碼安裝

$ git clone https://github.com/chenjiandongx/pytreemap.gitn $ cd torrent-clin $ pip install -r requirements.txtn $ python setup.py installn

使用

命令行參數

C:Userschenjiandongx>pytm-clinusage: pytm-cli [-i INPUT] [-o OUTPUT] [-d DIRECTION] [-t TYPE] [-v] [-h]nn樹圖渲染命令行工具-利用 JSON 數據生成 HTML 格式的樹圖nnoptional arguments:n -i INPUT, --input INPUTn JSON 數據路徑.n -o OUTPUT, --output OUTPUTn 輸出 HTML 文件路徑.(默認為`.TreeMap.html`)n -d DIRECTION, --direction DIRECTIONn 樹圖的布局方向, 有 LR/RL/H/TB/BT/V 可選.(默認為 LR)n -t TYPE, --type TYPE 樹圖類型, 1.分層樹 2.縮進樹 3.生態樹.(默認為 1)n -v, --version 版本信息n -h, --help 幫助頁面n

JSON 數據

首先假設你有一份數據需要生產樹圖,大概長這樣

|----B |----E----|----In | |n |----C-----|----F |----JnA----| |n |----D-----|----G----|----|----Kn |n |----Hn

這時候思路就很清晰了,你需要來編寫成 JSON 數據了,節點都是以 {name, children} 為基礎的遞歸嵌套模式,如下

{n "children": [n {n "children": [],n "name": "B"n },n {n "children": [n {n "children": [n {n "children": [],n "name": "I"n }n ],n "name": "E"n },n {n "children": [],n "name": "F"n }n ],n "name": "C"n },n {n "children": [n {n "children": [n {n "children": [],n "name": "J"n },n {n "children": [],n "name": "K"n }n ],n "name": "G"n },n {n "children": [],n "name": "H"n }n ],n "name": "D"n }n ],n "name": "A"n}n

怎麼樣,結構很清晰吧,將文件保存為 json 格式,如 data.json

生成樹圖

接下來之執行 pytm-cli -i data.json -o demo.html,然後用瀏覽器打開根目錄下的 demo.html 文件,就可以看到已經生產了這樣的一張圖了

當指定 -t/--type 參數分別為 2 3 時,得到的圖是這樣的

type 為 2

type 為 3

其餘參數嘗試一下就知道效果了,這裡提供官網提供的 數據 生產的效果

pytm-cli -i data.json

pytm-cli -i data.json -d H

pytm-cli -i data.json -t 3

以模塊方式使用

from pytreemap import rendernnrender(input, direction=None, output=None, type=None)nn:param input: 輸入 json 文件路徑n:param direction: 樹圖方向,有 LR/RL/H/TB/BT/V 可選n:param output: 輸出 html 文件路徑n:param type: 樹圖類型n

項目地址:chenjiandongx/pytreemap


推薦閱讀:

TAG:Python |