Python library for creating and drawing graphs and taking advantage of graph properties
Project description
Abstract
Abstract is a Python library for creating and drawing graphs and taking advantage of graph properties.
Installation
pip install abstract
or
pip install git+https://github.com/idin/abstract.git
Graph
In computer science, a graph is an abstract data type that is meant to implement the undirected graph and directed graph concepts from mathematics; specifically, the field of graph theory. [1]
A graph data structure consists of a finite (and possibly mutable) set of vertices or nodes or points, together with a set of unordered pairs of these vertices for an undirected graph or a set of ordered pairs for a directed graph. These pairs are known as edges, arcs, or lines for an undirected graph and as arrows, directed edges, directed arcs, or directed lines for a directed graph. The vertices may be part of the graph structure, or may be external entities represented by integer indices or references. [1]
Usage
The Graph class allows you to create nodes and edges and visualize the resulting graph. Edges can have direction which indicates parent-child relationship.
Graph: Constructing a New Graph
from abstract import Graph
graph = Graph()
add_node: Adding a New Node
The add_node method returns a GraphNode object.
node_order = [
'scissors', 'paper', 'rock', 'lizard', 'Spock', 'scissors',
'lizard', 'paper', 'Spock', 'rock', 'scissors'
]
# add nodes (avoid duplicates)
for node in set(node_order):
node = graph.add_node(name=node)
connect: Adding Edges
The connect method creates an edge from a start node to an end node.
for index in range(len(node_order)-1):
edge = graph.connect(start=node_order[index], end=node_order[index+1])
get_node
To retrieve a node from the graph you can use the get_node method.
rock = graph.get_node('rock')
draw (render)
The render method visualizes the graph and if a path is provided it saves it to an image file that can be a pdf or png. The file format is infered from the path argument. The draw method is just an alias for render.
# just visualize the graph
graph.draw()
https://raw.githubusercontent.com/greyli/flask-share/master/images/demo.png
# save as a png file and view the file
graph.draw(path='my_graph.png', view=True)
Future Features
- Create a graph from:
- list of dictionaries
- dataframe
- Create a new graph by filtering a graph
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.