Visualize Tree, Graph, and Matrix data structures with ease.
Project description
Data Structure Plot (DSPlot)
DSPlot is a tool to simply visualize tree and graph data structures by serving as a Pythonic interface to the Graphviz layout. DSPlot allows you to easily draw trees, graphs (both directed and undirected), and matrices by passing data in primitive form and directly output an image.
⬇ Installation
0. Prerequisites
- Python 3.7 or later
pip
virtualenv
1. Install Graphviz
- MacOS:
brew install graphviz
- Linux:
apt-get install graphviz
- Other OS(s): https://graphviz.org/download/
2. Install package
$ pip install dsplot
🤟 Usage
- Binary Tree:
from dsplot.tree import BinaryTree
tree = BinaryTree(nodes=[5, 4, 8, 11, None, 13, 4, 7, 2, None, None, 5, 1])
tree.plot()
- Graph:
from dsplot.graph import Graph
graph = Graph(
{0: [1, 4, 5], 1: [3, 4], 2: [1], 3: [2, 4], 4: [], 5: []}, directed=True
)
graph.plot()
from dsplot.graph import Graph
graph = Graph(
{1: [2, 4], 2: [1, 3], 3: [2, 4, 5], 4: [1, 3], 5: [3, 6, 7], 6: [5], 7: [5]}, directed=False
)
graph.plot()
- Matrix:
from dsplot.matrix import Matrix
matrix = Matrix([[1, 2, 3], [4, 5, 6], [1, 2, 6]])
matrix.plot()
🎁 Additional features
1. Tree traversals:
from dsplot.tree import BinaryTree
tree = BinaryTree(nodes=[5, 4, 8, 11, None, 13, 4, 7, 2, None, None, 5, 1])
print(tree.preorder())
# [5, 4, 11, 7, 2, 8, 13, 4, 5, 1]
print(tree.inorder())
# [7, 11, 2, 4, 5, 13, 8, 5, 4, 1]
print(tree.postorder())
# [7, 2, 11, 4, 13, 5, 1, 4, 8, 5]
2. Graph traversals:
from dsplot.graph import Graph
graph = Graph(
{0: [1, 4, 5], 1: [3, 4], 2: [1], 3: [2, 4], 4: [], 5: []}, directed=True
)
print(graph.bfs())
# [0, 1, 4, 5, 3, 2]
print(graph.dfs())
# [0, 1, 3, 2, 4, 5]
📄 License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dsplot-0.5.0.tar.gz
(6.2 kB
view hashes)
Built Distribution
dsplot-0.5.0-py3-none-any.whl
(7.3 kB
view hashes)