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.12.tar.gz (179.3 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.12-py2.py3-none-any.whl (6.3 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for graph_widget-0.1.12.tar.gz
Algorithm Hash digest
SHA256 4c9748b4676b51d6b8d4c83f285a588c976e081240f22a8d5517e38928b64361
MD5 897cde0a89b171478219c28d78b97ef2
BLAKE2b-256 8055f912676a29d926d631fc6cb22bda8084d7c1690aca2f9a2c23af76839baa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for graph_widget-0.1.12-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3bbd8d8dfa9c6ce837f2519e053f3e55e4b8f81bee0f60e072d420c266622f13
MD5 c4c72ce1acab1c605fb23a9874e57257
BLAKE2b-256 ca24bc250f6c9c1ce41eb133b372b2af2282b802d1349d923b7d67369fa8b9bb

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