Skip to main content

Add your description here

Project description

vizopt

Mathematical optimization for data visualization, specifically designed for graph layouts with hierarchical inclusion constraints ("bubble layouts").

Uses JAX for automatic differentiation and JIT compilation to efficiently optimize layouts via gradient descent.

Installation

pip install vizopt

Quick Start

import networkx as nx
from vizopt.bubblejax import optimize_bubble_layout

# Create a graph
graph = nx.Graph()
graph.add_edges_from([("Munich", "Vienna"), ("Vienna", "Prague")])

# Define inclusion tree (cities in countries)
inclusion_tree = nx.DiGraph()
inclusion_tree.add_edges_from([
    ("Munich", "Germany"),
    ("Vienna", "Austria"),
    ("Prague", "Czechia"),
])

# Optimize layout
result = optimize_bubble_layout(
    graph=graph,
    inclusion_tree=inclusion_tree,
    node_radii={"Munich": 0.3, "Vienna": 0.3, "Prague": 0.3},
)

Features

  • Multi-objective optimization (edge lengths, compactness, collision avoidance, inclusion constraints)
  • Efficient JAX-based gradient descent with JIT compilation
  • Handles arbitrary hierarchical inclusion relationships
  • NetworkX integration

Examples

See examples/examples_with_bubbles.ipynb for detailed usage.

License

MIT

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

vizopt-0.0.1.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

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

vizopt-0.0.1-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file vizopt-0.0.1.tar.gz.

File metadata

  • Download URL: vizopt-0.0.1.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vizopt-0.0.1.tar.gz
Algorithm Hash digest
SHA256 bc56be4117e9f866478c4b89aeee527765e2eb2f54fd4e6996b0c151ec748daa
MD5 e7ef26567dee62a1658fe848e6a01876
BLAKE2b-256 23c508c6f1e99b0b6acc728d05d6a12ff44f3c2bd0b836aad6bd56aa2a92ef4d

See more details on using hashes here.

File details

Details for the file vizopt-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: vizopt-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vizopt-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 544f344a53d7b4317b08c11f4c872b98f52b5a6fa836f3165c0952cf3e578020
MD5 5ccc146488ece85fc7ba83cea3ce6b42
BLAKE2b-256 b6f629c49b6e619728f7588bab1354d569e45faea1a1b88bd53af43bf05c3bc4

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