Skip to main content

Based on react-graph-vis

Install

pip install streamlit-agraph

Example App

Check out the example App!

Basic Usage

import streamlit
from streamlit_agraph import agraph, Node, Edge, Config

nodes = []
edges = []
nodes.append( Node(id="Spiderman", 
                   label="Peter Parker", 
                   size=25, 
                   shape="circularImage",
                   image="http://marvel-force-chart.surge.sh/marvel_force_chart_img/top_spiderman.png") 
            ) # includes **kwargs
nodes.append( Node(id="Captain_Marvel", 
                   size=25,
                   shape="circularImage",
                   image="http://marvel-force-chart.surge.sh/marvel_force_chart_img/top_captainmarvel.png") 
            )
edges.append( Edge(source="Captain_Marvel", 
                   label="friend_of", 
                   target="Spiderman", 
                   # **kwargs
                   ) 
            ) 

config = Config(width=750,
                height=950,
                directed=True, 
                physics=True, 
                hierarchical=False,
                # **kwargs
                )

return_value = agraph(nodes=nodes, 
                      edges=edges, 
                      config=config)

Config Bilder

from streamlit_agraph.config import Config, ConfigBuilder

# 1. Build the config (with sidebar to play with options) .
config_builder = ConfigBuilder(nodes)
config = config_builder.build()

# 2. If your done, save the config to a file.
config.save("config.json")

# 3. Simple reload from json file (you can bump the builder at this point.)
config = Config(from_json="config.json")

Formating the graph with hierachies is also possible via Hierarchical Option (see config):
Group as you can see on the node colors too. Just pass the group attribute to the Node object.

marvel.png

TripleStore

You may also want to use the TripleStore (untested & incomplete - yet):
HINT: Make sure to add only unique nodes and edges.

# Currently not workin since update to agraph 2.0 - work in progress
from rdflib import Graph
from streamlit_agraph import TripleStore, agraph

graph = Graph()
graph.parse("http://www.w3.org/People/Berners-Lee/card")
store = TripleStore()

for subj, pred, obj in graph:
    store.add_triple(subj, pred, obj, "")
    
agraph(list(store.getNodes()), list(store.getEdges()), config)

Also graph algos can dirctly supported via the networkx API (untested & incomplete - yet):

from streamlit_agraph import GraphAlgos

algos = GraphAlgos(store)
algos.shortest_path("Spiderman", "Captain_Marvel")
algos.density()

Metadata

Release files for streamlit-agraph 0.0.45

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for streamlit-agraph 0.0.45
File Size Uploaded
streamlit-agraph-0.0.45.tar.gz 1.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for streamlit-agraph 0.0.45
File Interpreter ABI Platform
streamlit_agraph-0.0.45-py3-none-any.whl Python 3 none any Details

Total release size: 2.6 MB

Release files / streamlit-agraph-0.0.45.tar.gz

Download URL streamlit-agraph-0.0.45.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
b2b7cf1ad0a40dc906de50792b27f2878b0e186603cb3bc958ed78ca7e469cdd
BLAKE2b-256 checksum
How to use checksums
e66300a16b1500cde32d43177bba1c16d12369ed7d1c8b45ab8162f6552d8519
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.6.1 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

Release files / streamlit_agraph-0.0.45-py3-none-any.whl

Download URL streamlit_agraph-0.0.45-py3-none-any.whl
Size 1.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
38e7271ffd76a6769968c2e9dfc16cbac7621d62be15af98b62598e1446bee2f
BLAKE2b-256 checksum
How to use checksums
b9808a666e700332a9fe19e458678c95fab4d78340251d2f12da7d2ad915458a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.6.1 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page