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

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for graph_widget-0.1.15.tar.gz
Algorithm Hash digest
SHA256 a1f8bb37ec3d08ad5dee5a2c2472a1b1a80982de0089eada61044b1e68fd1f85
MD5 1a03291e717ed20f79f8b16043d0ca5c
BLAKE2b-256 1f8ea6664815110f50235bb9fe6e8900b974d60dcd3d1cb3038eae749a2199d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for graph_widget-0.1.15-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4f7114ad667ae3640cc525eee9bbefd19902317512d4b4371d86160e5fbaf7ab
MD5 5fd2d229e1a93ff2cae20a1753d4e097
BLAKE2b-256 538f555116346e81f4ca23b4c65eb7cf197f2b1ecc816a8882d10050aad78254

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