A powerful Python-based graph analysis tool that combines advanced network analysis capabilities with sophisticated visualization features, built with NetworkX, Matplotlib, and Tkinter. This comprehensive tool offers both analysis and simulation capabilities while maintaining high performance through intelligent caching mechanisms.
- Multi-Edge Support: Sophisticated handling of parallel edges with optimal label placement
- Self-Loop Visualization: Enhanced rendering of self-loops with automatic position adjustment
- Dynamic Layout: Automatic graph layout optimization for better readability
- Interactive Interface: Zoom, pan, and real-time graph manipulation
- Custom Edge Labels: Smart positioning system for edge weights and capacities
- Centrality Measures
- Betweenness Centrality
- Eigenvector Centrality
- PageRank
- Katz Centrality
- Community Detection
- Rich Club Coefficient
- Bridge Detection
- Articulation Points
- Core Numbers
- Shortest Path Algorithms
- Maximum Flow
- Global Min/Max Cost Paths
- Weighted Path Analysis
- Clustering Coefficient
- Assortativity
- Small World Coefficient
- Scale-Free Testing
- Spectral Analysis
- Interactive Simulation: Real-time visualization of information spread
- Customizable Parameters:
- Diffusion probabilities
- Acceptance rates
- Resilience coefficients
- Information modification rates
- Analysis Tools:
- Percentage of informed nodes
- Growth rate analysis
- Infection time distribution
- Visualization Controls:
- Play/Pause functionality
- Step-by-step navigation
- Zoom and pan capabilities
- Intelligent Caching System: Optimizes computation-heavy operations
- Efficient Memory Management
- Multi-graph Support
- Undo/Redo Functionality
- Graph Type Support
- Directed/Undirected
- Weighted/Unweighted
- Simple Graphs
- Multigraphs
- Pseudographs
- Flow Networks
This project requires Python 3.8+ and the following libraries:
- networkx
- matplotlib
- numpy
- tkinter (usually comes with Python)
You can install the required libraries using pip:
pip install networkx matplotlib numpy
To run the application:
- Clone or download the project
- Navigate to the project directory
- Run:
python main.py
The main window will open, allowing you to:
- Create and modify graphs
- Perform various analyses
- Run information diffusion simulations
- Visualize results
You can create a standalone executable using PyInstaller:
- Install PyInstaller:
pip install pyinstaller
- Create the executable:
pyinstaller --onefile --windowed --name GraphAnalyzer main.py
This will create:
- A dist directory containing the standalone executable
- A build directory with build files (can be safely deleted)
- A GraphAnalyzer.spec file for build configuration The executable can be found in the dist directory and can be run on any compatible system without requiring Python installation.
This project is licensed under the MIT License - see the LICENSE file for details.