Draw neo4j graphs with vis.js
Project description
:snake: neo4jvis
Installation
Neo4jvis requires Neo4j driver. You can install neo4jvis with:
pip install neo4jvis
Usage
Here's how you can use it: First import libraries, initialise the driver and create the graph container:
1. Import and init
from neo4j import GraphDatabase
from neo4jvis.model.styled_graph import StyledGraph
driver = GraphDatabase.driver(uri="bolt://url:port", auth=("my user", "my pass"))
graph = StyledGraph(driver)
2. Retrieve graph from neo4j
2.1 Retrieve whole graph
Here's how you can generate an html file with all the nodes and relationships of the database:
graph.generate_whole_graph()
graph.draw("output.html")
2.2 Generate graph from a query
Here's is how you can generate a graph from a given query provided by the developer:
QUERY = "MATCH p=()-[]->() RETURN p"
graph.add_from_query(QUERY)
graph.draw("output.html")
3. Style graph
3.1 Change nodes color
RED = "#ff0000"
WHITE = "#FFFFFF"
for node in list(graph.nodes.values()):
node["color"] = {
"border": WHITE,
"background": RED
}
graph.draw("output.html")
3.2 Change nodes size
for node in list(graph.nodes.values()):
node["value"] = randrange(1, 10)
graph.draw("output.html")
3.3. Change other node properties supported by vis.js
Neo4jvis supports all the options for nodes of vis.js.
Example usage:
node["shape"] = "triangle"
node["borderWidth"] = 10
node["label"] = "EXAMPLE"
node["font"] = {
"color": "#e8c2b0",
"size": 20,
}
graph.draw("output.html")
3.4. Change edge properties
for edge in graph.edges:
edge["value"] = random.randrange(1, 10)
edge["color"] = {
"color": "#e8c2b0"
}
graph.draw("output.html")
3.5. Change other edge properties
Similarly, as with nodes, neo4jvis supports all the options for edges of vis.js.
4. Change graph options
Graphs come with a default set of options defined in options
property:
>>> print(graph.options)
{
'nodes': ...
'edges': ...
'interaction': ...
'physics': ...
}
See the available options for graphs supported by vis.js.
Example usage:
graph.options["directed"] = "false"
Advanced usage
Generate graph from neomodel StructuredRel
Neomodel is a Object Graph Mapper for Neo4j database. Neo4jvis allows the retrieval of the network from a list of neomodel StructuredRel objects. Here's an example of the usage:
class Connected(StructuredRel):
pass
class Usuarios(StructuredNode):
id = StringProperty()
connected = RelationshipTo("Usuarios", "CONNECTED", model = Connected)
QUERY = """
MATCH (n1:Usuarios)-[r:CONNECTED]->()
RETURN r
"""
Z = neomodel.db.cypher_query(
QUERY,
resolve_objects=True)
relationships_list = [rel[0] for rel in Z[0]]
graph.add_from_neomodel_relationships(relationships_list)
graph.draw("output.html")
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.
Source Distribution
Built Distribution
File details
Details for the file neo4jvis-0.0.1.tar.gz
.
File metadata
- Download URL: neo4jvis-0.0.1.tar.gz
- Upload date:
- Size: 155.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 119e7177f8d4966f8eb74df5937fda00f9e110f50358b473835956729c70b342 |
|
MD5 | 4c9ea94c802b99fb26ac680395094699 |
|
BLAKE2b-256 | d200304f937603235c5f80c78c7bcba385bec6ab435594fc62d983371efccce5 |
File details
Details for the file neo4jvis-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: neo4jvis-0.0.1-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b10fe0e15c5197c0a0e7a7c8f5775142783992ef37c886229579f3f8b910d3f |
|
MD5 | 694d2401bafec90acf0474f29ceb0fa1 |
|
BLAKE2b-256 | 3b9e0042b01dae1d8925e1e0a3c6d2e979d3e23dba576dc9ba74dd1e2f225bcf |