A comprehensive Python application for mathematical function visualization, analysis, and computation. Built with Tkinter for the GUI, matplotlib for plotting, and SymPy for symbolic mathematics.
- Interactive Plotting: Plot mathematical functions with customizable ranges
- Multiple Function Display: Simultaneously view original function, derivatives, and integrals
- Higher-Order Derivatives: Calculate and visualize derivatives of any order
- Professional Styling: Clean, modern interface with enhanced visual design
- Symbolic Computation: Calculate symbolic derivatives and integrals using SymPy
- Numerical Integration: Compute definite integrals using SciPy's quad function
- Comprehensive Analysis: Get detailed mathematical insights about your functions
- Real-time Computation: Instant calculations and visualizations
- Tabbed Interface: Organized workflow with Function Input, Visualization, and Results tabs
- Quick Function Buttons: One-click insertion of common mathematical functions
- Interactive Navigation: Zoom, pan, and explore plots with matplotlib toolbar
- Help System: Built-in documentation and syntax guide
- Multiple Formats: Save graphs as PNG, PDF, or SVG files
- High Quality: 300 DPI output for publication-ready graphics
- Professional Layout: Clean, publication-ready plot styling
pip install tkinter matplotlib numpy scipy sympy- Clone or download the project files
- Ensure all dependencies are installed
- Run the main application:
python main.py- Launch the Application: Run
main.pyto open the welcome screen - Start Visualizing: Click "๐ Start Visualizing" to open the function visualizer
- Enter a Function: Type your mathematical function in the input field
- Set Range: Adjust x_min and x_max values for your desired plot range
- Visualize: Click "๐ Visualize" to generate the plot
- Analyze: Use "๐งฎ Compute" for detailed mathematical analysis
| Operation | Syntax | Example |
|---|---|---|
| Addition | + |
x + 5 |
| Subtraction | - |
x - 3 |
| Multiplication | * |
3*x |
| Division | / |
x/2 |
| Exponentiation | ** |
x**2 |
| Function | Syntax | Description |
|---|---|---|
| Sine | sin(x) |
Trigonometric sine |
| Cosine | cos(x) |
Trigonometric cosine |
| Tangent | tan(x) |
Trigonometric tangent |
| Exponential | exp(x) |
e^x |
| Natural Log | log(x) |
ln(x) |
| Square Root | sqrt(x) |
โx |
| Absolute Value | abs(x) |
|x| |
pi- ฯ (3.14159...)e- Euler's number (2.71828...)
x**2 + 3*x + 5 # Quadratic function
sin(x) + cos(x) # Trigonometric combination
exp(-x**2) # Gaussian function
log(x**2 + 1) # Logarithmic function
sqrt(abs(x)) # Composite functionFunction Visualizer/
โโโ main.py # Main application entry point
โโโ function_vis.py # Core visualization application class
โโโ compute_engine.py # Mathematical computation engine
โโโ utils.py # Utility functions (window centering)
โโโ ui/
โ โโโ components.py # UI component creation functions
โ โโโ styles.py # Application styling and themes
โ โโโ __pycache__/ # Python bytecode cache
โโโ __pycache__/ # Python bytecode cache
- Application entry point
- Welcome screen with launcher interface
- Navigation to function visualizer
- Main visualization application class
- Tabbed interface management
- Plot generation and interaction handling
- Event handling for all user actions
- Mathematical computation backend
- Function parsing and validation
- Symbolic and numerical calculations
- Derivative and integral computation
- Utility functions for UI management
- Window positioning and centering
- UI component creation and layout
- Input sections, visualization areas, results display
- Button configurations and event bindings
- Application theming and visual styling
- Color schemes and typography
- Button and widget styling configurations
- Tkinter: GUI framework (built into Python)
- Matplotlib: 2D plotting library for visualizations
- NumPy: Numerical computing for array operations
- SciPy: Scientific computing for numerical integration
- SymPy: Symbolic mathematics for analytical computations
- Function Parsing: SymPy-based expression parsing with error handling
- Numerical Differentiation: Gradient-based derivative approximation
- Symbolic Differentiation: SymPy's diff function for exact derivatives
- Numerical Integration: SciPy's quad function for definite integrals
- Plotting: High-resolution matplotlib figures with custom styling
- Efficient Plotting: 1000-point resolution for smooth curves
- Error Handling: Comprehensive exception handling for mathematical edge cases
- Memory Management: Proper cleanup of matplotlib figures
- Responsive UI: Non-blocking operations with progress feedback
- Clean and Modern: Minimalist interface focusing on functionality
- Professional Appearance: Suitable for academic and professional use
- Intuitive Navigation: Logical workflow from input to analysis
- Accessibility: Clear labels, readable fonts, and logical tab order
- Primary Blue: #3498db (buttons, accents)
- Success Green: #27ae60 (positive actions)
- Warning Orange: #e67e22 (caution actions)
- Danger Red: #e74c3c (destructive actions)
- Background: #f8f9fa (light, easy on eyes)
- Polynomial Functions: Linear, quadratic, cubic, and higher-order
- Trigonometric Functions: sin, cos, tan and their inverses
- Exponential Functions: Natural and arbitrary base exponentials
- Logarithmic Functions: Natural and common logarithms
- Composite Functions: Complex combinations of basic functions
- Symbolic Derivatives: Exact analytical derivatives using SymPy
- Higher-Order Derivatives: Derivatives of any positive integer order
- Definite Integration: Numerical integration over specified intervals
- Function Evaluation: Point-by-point function evaluation
- Error Analysis: Comprehensive error handling for mathematical edge cases
To add support for new mathematical functions:
- Update the function parser in
compute_engine.py - Add quick function buttons in
ui/components.py - Update help documentation as needed
Customize the application appearance by modifying:
- Color schemes in
ui/styles.py - Layout parameters in
ui/components.py - Plot styling in
function_vis.py
This is an educational project showcasing mathematical visualization capabilities.
- 3D Function Plotting: Support for functions of two variables
- Animation: Animated parameter sweeping
- More Function Types: Hyperbolic, special functions
- Export Options: LaTeX output, data export
- Performance: GPU acceleration for complex functions
This project is created for educational purposes. Feel free to use and modify for learning and academic applications.
- SymPy Team: For excellent symbolic mathematics capabilities
- Matplotlib Team: For powerful and flexible plotting tools
- SciPy Team: For robust numerical computation functions
- Python Community: For creating an amazing ecosystem for scientific computing
For questions about function syntax, mathematical concepts, or application usage, refer to the built-in help system accessible through the "โ Help" button in the application.
Calc-U-Later - Making mathematical visualization accessible, powerful, and beautiful. ๐โจ