Graph Types Overview
Graphizy supports a comprehensive collection of graph types designed for different use cases in computational geometry, network analysis, and spatial data processing. All graph types use the modern unified make_graph() interface and are compatible with memory and weight systems.
Available Graph Types
Built-in Graph Types
- Geometric Graphs
Delaunay Triangulation: Creates optimal triangular meshes with excellent geometric properties
Gabriel Graph: Subset of Delaunay with specific geometric constraints for wireless networks
- Proximity-Based Graphs
Proximity Graphs: Connect points within a specified distance threshold
K-Nearest Neighbors (KNN): Connect each point to its k closest neighbors
- Optimization-Based Graphs
Minimum Spanning Tree (MST): Minimal connected graph with shortest total edge length
- Memory-Enhanced Graphs
Memory Graphs: Any base graph type enhanced with temporal connection tracking
- Custom Graphs
Plugin System: Extensible framework for domain-specific algorithms
Unified Interface
All graph types use the same unified interface:
# Basic usage
graph = grapher.make_graph("graph_type", data, **parameters)
# With memory and weights (smart defaults)
graph = grapher.make_graph("proximity", data, proximity_thresh=50.0)
# Automatically: use_memory=True, update_memory=True, compute_weights=True
# Explicit control
graph = grapher.make_graph("delaunay", data,
use_memory=False,
update_memory=True,
compute_weights=True)
Performance Characteristics
Graph Type |
Time Complexity |
Space Complexity |
Typical Edges |
Best Use Cases |
|---|---|---|---|---|
Delaunay |
O(n log n) |
O(n) |
~3n |
Mesh generation, spatial analysis |
Proximity |
O(n²) |
O(n²) |
Variable |
Local neighborhoods, clustering |
KNN |
O(n² log n) |
O(kn) |
kn |
Machine learning, recommendations |
MST |
O(n² log n) |
O(n) |
n-1 |
Optimization, minimal connectivity |
Gabriel |
O(n³) |
O(n) |
⊆ Delaunay |
Wireless networks, geometric constraints |
Selection Guidelines
- For Spatial Analysis:
Dense regular patterns → Delaunay Triangulation
Sparse irregular patterns → Proximity Graphs
Fixed connectivity requirements → K-Nearest Neighbors
Minimal connectivity needs → Minimum Spanning Tree
- For Network Properties:
Always connected graphs → Delaunay or MST
Local neighborhood analysis → Proximity or KNN
Minimal edge count → MST
Controlled degree distribution → KNN
- For Dynamic Analysis:
Any base type + Memory system
Temporal pattern analysis → Memory-enhanced graphs
Evolution tracking → Memory with age visualization
Compatibility Matrix
Graph Type |
Memory |
Weights |
Streaming |
Plugins |
Special Features |
|---|---|---|---|---|---|
Delaunay |
✅ |
✅ |
✅ |
N/A |
Always connected, planar |
Proximity |
✅ |
✅ |
✅ |
N/A |
Adjustable density |
KNN |
✅ |
✅ |
✅ |
N/A |
Fixed out-degree |
MST |
✅ |
✅ |
✅ |
N/A |
Minimal edges, tree structure |
Gabriel |
✅ |
✅ |
✅ |
N/A |
Geometric constraints |
Custom |
✅ |
✅ |
✅ |
✅ |
User-defined algorithms |
Next Steps
delaunay - Detailed Delaunay triangulation documentation
proximity - Proximity graphs and distance metrics
knn - K-nearest neighbors implementation
mst - Minimum spanning tree algorithms
gabriel - Gabriel graph properties and applications
custom_plugins - Creating custom graph types
selection_guide - Detailed selection criteria