Skip to main content

No project description provided

Project description

graph_widget

An anywidget implementation of force-graph (https://github.com/vasturiano/force-graph). It includes a brush (Cmd-drag).

Installation

pip install graph_widget

or with uv:

uv add graph_widget

Example

An example marimo script (available as example.py => run with uv run marimo edit example.py):

import graph_widget
import pandas as pd
import json
import requests

url = "https://raw.githubusercontent.com/observablehq/sample-datasets/refs/heads/main/miserables.json"
response = requests.get(url)
data = response.json()

repulsion_slider = mo.ui.slider(
    start=-100, stop=500, step=10, value=1, debounce=False, label="Repulsion"
)
node_scale_slider = mo.ui.slider(
    start=1, stop=20, step=1, value=3, debounce=True, label="Node scale"
)
colour_feature_dropdown = mo.ui.dropdown(
    options=list(data["nodes"][3].keys()), value="kind", label="Colour by"
)
colour_scale_type_radio = mo.ui.radio(options=["diverging", "sequential"], value="diverging", label="Colour scale type")

data_graph = mo.ui.anywidget(
    graph_widget.ForceGraphWidget(
        data=data,
        repulsion=2,
        node_scale=2,
        colour_feature="",
        colour_scale_type=""
    )
)

data_graph.repulsion = repulsion_slider.value
data_graph.node_scale = node_scale_slider.value
data_graph.colour_feature = colour_feature_dropdown.value
data_graph.colour_scale_type= colour_scale_type_radio.value

mo.hstack([data_graph,
    mo.vstack([
        repulsion_slider,
        node_scale_slider,
        colour_feature_dropdown,
        colour_scale_type_radio])], justify="start")

selected = data_graph.selected_ids

Arguments

  • repulsion
  • node_scale
  • colour_feature
  • colour_scale_type: can be empty string, or "diverging"

Development

We recommend using uv for development. It will automatically manage virtual environments and dependencies for you.

uv run marimo edit example.py

Changes made in src/graph_widget/static/ will be reflected in the notebook.

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

graph_widget-0.1.17.tar.gz (182.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

graph_widget-0.1.17-py2.py3-none-any.whl (6.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file graph_widget-0.1.17.tar.gz.

File metadata

  • Download URL: graph_widget-0.1.17.tar.gz
  • Upload date:
  • Size: 182.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.9

File hashes

Hashes for graph_widget-0.1.17.tar.gz
Algorithm Hash digest
SHA256 6cfc09c65a8476886b44237257484c017e450a63c8105c96e460dff1c9d5260e
MD5 70983970a486f64d62a436e124f00f7b
BLAKE2b-256 2700b4694ad8c9c09f546c4912723dbcbbbc86a08423e46d47081b144bcc8850

See more details on using hashes here.

File details

Details for the file graph_widget-0.1.17-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for graph_widget-0.1.17-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4a8a2e91715f592763f042940d78ce583057f35866c9ac1a1d7609e241b26c74
MD5 ba1b5f7dbc01be8817600c854a9f99ba
BLAKE2b-256 5d5bca3ce54716d4c2f4895b0c65e3c479e6d58a3a19023d29071f714fe6b545

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page