Convert mathematical equations into graph structures for visualization
Project description
numgraph
A Python library that converts mathematical equations into graph/network structures for visualization and analysis.
What is numgraph?
numgraph turns mathematical relationships into nodes and edges, then visualizes them as interactive graphs. This helps users understand how variables and operations interact.
Use cases:
- Students learning algebra and calculus
- Data scientists analyzing feature dependencies
- Researchers visualizing mathematical formulas
Quick Start
Installation
Install from PyPI:
pip install numgraph-equation
Or install from source:
git clone https://github.com/Ayush-07-Mishra/numgraph.git
cd numgraph
pip install -e .
Basic Usage
from numgraph import make_graph
# Parse and visualize an equation
make_graph("x**2 + y**2 = 25", visualize=True)
# Create a function graph
make_graph("y = x**2 - 4*x + 3", func_range=(-10, 10), visualize=True)
Features
- Parse mathematical equations using SymPy
- Build graph structures with NetworkX
- Interactive HTML visualizations with PyVis
- Static plots with Matplotlib
- Export to GraphML and GEXF formats
- Function plotting with custom ranges
Examples
Circle Equation
from numgraph import make_graph
# Visualize the circle equation
make_graph("x**2 + y**2 = 25", visualize=True, save_path="circle.html")
Quadratic Function
from numgraph import make_graph
# Plot a parabola
make_graph("y = x**2 - 4*x + 3", func_range=(-2, 6), visualize=True)
Custom Graph Analysis
from numgraph.parser import EquationParser
from numgraph.graph_builder import GraphBuilder
from numgraph.visualizer import Visualizer
# Parse equation
parser = EquationParser("x**2 + 2*x*y + y**2 = 16")
nodes, edges = parser.parse()
# Build graph
builder = GraphBuilder(nodes, edges)
graph = builder.build()
# Visualize
viz = Visualizer(graph)
viz.show_interactive() # Interactive HTML visualization
viz.show_static() # Static matplotlib plot
API Reference
make_graph(equation, visualize=False, func_range=None, save_path=None)
Main function to create and optionally visualize equation graphs.
Parameters:
equation(str): Mathematical equation or functionvisualize(bool): Whether to show visualizationfunc_range(tuple): Range for function evaluation (min, max)save_path(str): Path to save interactive HTML visualization
Returns:
networkx.Graph: Graph representation of the equation
Project Structure
numgraph/
├── numgraph/
│ ├── __init__.py # Main API
│ ├── parser.py # Equation parsing
│ ├── graph_builder.py # Graph creation
│ ├── visualizer.py # Visualization
│ └── dataset.py # Dataset utilities
├── examples/
│ ├── circle_equation.py
│ ├── quadratic_function.py
│ └── custom_analysis.py
├── tests/
│ ├── test_parser.py
│ ├── test_graph_builder.py
│ └── test_visualizer.py
├── setup.py
├── README.md
└── requirements.txt
Testing
# Run all tests
python -m pytest tests/
# Run specific test
python -m pytest tests/test_parser.py -v
Dependencies
- sympy - Symbolic mathematics and parsing
- networkx - Graph creation and analysis
- pyvis - Interactive network visualization
- matplotlib - Static plotting
- numpy - Numerical computations
Contributing
Contributions are welcome! Please read CONTRIBUTING.md for details.
Contact
For questions or support: luckymishra312004@gmail.com
For Students
- Visualize how equations are structured
- Understand operator precedence
- See variable relationships clearly
For Educators
Contact
For questions or support: luckymishra312004@gmail.com
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file numgraph_equation-0.1.2.tar.gz.
File metadata
- Download URL: numgraph_equation-0.1.2.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
338f2f111073576092f04ae61ae4b2bf48296f5f078106daafc540f0eeae55e8
|
|
| MD5 |
8aae85dc852c4ae9b1a6d10928a02c7a
|
|
| BLAKE2b-256 |
46b1d33019057d9dbc1065374a1745f75af6d0d0e3a071496a3ffc8097451ab7
|
File details
Details for the file numgraph_equation-0.1.2-py3-none-any.whl.
File metadata
- Download URL: numgraph_equation-0.1.2-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc466a97c4aaf48694dabdb852f48ce98190c5c9e3311d4e2e8f58099a79f7f4
|
|
| MD5 |
36090ab8993736447fad72622eaaecb0
|
|
| BLAKE2b-256 |
9eb2423c40370ed9f7db9f94ba131b11377c0311ac61f256d421b9791d69ffc3
|