Skip to content
/ treeviz Public

Lite python package for plotting tree stucture in bash manner

License

Notifications You must be signed in to change notification settings

tsupei/treeviz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

treeviz

Visualize tree structure in bash manner using python

install

pip install treeviz

Structure

.
├── MANIFEST
├── MANIFEST.in
├── README.md
├── setup.py
├── test.py
└── treeviz
    ├── __init__.py
    └── treeviz.py

# showcases of usage
python test.py

Usage

Create Your tree structure

from treeviz.treeviz import Node
root = Node("Jason")
child1 = Node("Mary")
child2 = Node("John")
grandson1 = Node("Kevin")
grandson2 = Node("Doris")
grandson3 = Node("James")
grandson4 = Node("Momo")
grandgrandson1 = Node("Baby")

root.add_child(child1)
root.add_child(child2)
child1.add_child(grandson1)
child1.add_child(grandson2)
child2.add_child(grandson3)
child2.add_child(grandson4)
grandson1.add_child(grandgrandson1)
root.visualize()
Jason
├── Mary
│   ├── Kevin
│   │   └── Baby
│   └── Doris
└── John
    ├── James
    └── Momo

You can also print the sub-tree structure

child1.visualize()
Mary
├── Kevin
│   └── Baby
└── Doris

Two options are provided, to print in terminal or print to file

# print to file
# Giving path as the first parameter
root.visualize(".")

# If path is empty, then print to terminal
root.visualize()

# Default name is treeviz.txt, if the filename already exists, a number will be appended to it.

New Features

(2019.11.1) Adding max_len parameter to visualize(), which splits the message into multiple lines.

from treeviz.treeviz import Node
root = Node("Jason is our grandfather")
child1 = Node("Mary is Kevin's mother")
child2 = Node("John is James and Momo's father")
grandson1 = Node("Kevin")
grandson2 = Node("Doris")
grandson3 = Node("James")
grandson4 = Node("Momo")
grandgrandson1 = Node("Baby")

root.add_child(child1)
root.add_child(child2)
child1.add_child(grandson1)
child1.add_child(grandson2)
child2.add_child(grandson3)
child2.add_child(grandson4)
grandson1.add_child(grandgrandson1)
root.visualize(max_len=10)
Jason is our grandfather
├── Mary is Ke
│   vin's moth
│   er
│   ├── Kevin
│   │   └── Baby
│   └── Doris
└── John is Ja
    mes and Mo
    mo's fathe
    r
    ├── James
    └── Momo

(2019.11.2) Adding line_space parameter to visualize(), which enables to set space between each branch

root.visualize(line_space=2)
Jason is our grandfather
├── Mary is Kevin's mother
│   │
│   │
│   ├── Kevin
│   │   │
│   │   │
│   │   └── Baby
│   │
│   │
│   └── Doris


└── John is James and Momo's father
    │
    │
    ├── James
    │
    │
    └── Momo

(2019.11.4) Adding 'filename' parameter to visualize, which enables users to defince own filename

About

Lite python package for plotting tree stucture in bash manner

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages