Skip to content

Latest commit

 

History

History
222 lines (149 loc) · 7.67 KB

File metadata and controls

222 lines (149 loc) · 7.67 KB

RegressionLab Logo

RegressionLab

A powerful and user-friendly curve fitting application for scientists, engineers, students, and data analysts

Python License Version Streamlit SciPy NumPy

🌐 Try Online📖 Documentation🐛 Report Bug💡 Request Feature


RegressionLab is a comprehensive curve fitting application that enables you to perform advanced curve fitting operations using multiple mathematical models with an intuitive interface. Whether you're analyzing experimental data, calibrating instruments, or exploring mathematical relationships, RegressionLab provides the tools you need.

✨ Features

🖥️ Dual Interface 📊 Advanced Fitting 🎨 Professional Plots
Web (Streamlit) & Desktop (Tkinter) Multiple mathematical models Publication-ready visualizations

🚀 Key Capabilities

  • 🌐 Dual Interface: Choose between web version (Streamlit) for instant access or desktop version (Tkinter) for offline use
  • 📈 Multiple Fitting Functions: Linear, polynomial, trigonometric, logarithmic, inverse, hyperbolic, and custom functions
  • 📐 Multidimensional Fitting: Support for regression with 2+ independent variables via custom formulas; 3D interactive plot for 2 variables, residuals plot for 3+
  • 🔮 Prediction Window: Evaluate fitted functions at user-specified inputs with uncertainty propagation (desktop version)
  • ⚙️ Multiple Operation Modes: Normal fitting, multiple datasets, checker mode, total fitting, and view data (with transform, clean, save)
  • 📊 Professional Visualization: Publication-ready plots with error bars and customizable styles
  • 📏 Uncertainty Handling: Automatic detection and visualization of measurement uncertainties
  • 🔄 Batch Processing: Fit multiple datasets or test all equations simultaneously
  • 🌍 Internationalization: Full support for English, Spanish, and German (easily extensible)
  • ⚙️ Highly Configurable: Customize every aspect through the .env file

📚 Documentation

📖 Complete documentation is available in the docs/ directory

📄 Document 📝 Description
Getting Started Main documentation index
Introduction Project overview and benefits
Installation Guide Detailed installation instructions
User Guide How to use RegressionLab
Configuration Configuration options
API Documentation Technical reference for developers

🚀 Quick Start

🌐 Web Version (Easiest)

👉 Try RegressionLab Online Now 👈

No installation required!

💻 Desktop Installation

Quick Installation (Recommended):

Windows:

install.bat

Linux/macOS:

chmod +x install.sh
./install.sh

Manual Installation:

  1. Clone the repository:

    git clone https://github.com/DOKOS-TAYOS/RegressionLab.git
    cd RegressionLab
  2. Create and activate a virtual environment:

    python -m venv venv
    # Windows
    venv\Scripts\activate
    # Linux/macOS
    source venv/bin/activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Run the application:

    # Desktop version (Tkinter)
    python src/main_program.py
    # Or use the launcher: bin\run.bat (Windows) / ./bin/run.sh (Linux/macOS)
    
    # Web version (Streamlit)
    streamlit run src/streamlit_app/app.py
    # Or use: bin\run_streamlit.bat (Windows) / ./bin/run_streamlit.sh (Linux/macOS)

🎯 Use Cases

🎓 Academic Research 🔧 Engineering 📊 Data Science 📚 Education
Analyzing experimental data from physics, chemistry, or biology labs Calibration curve generation, system identification, and modeling Exploratory data analysis and model validation Learning about mathematical functions and curve fitting concepts

🛠️ Requirements

  • Python 3.12 or higher (3.13 supported)
  • Windows 10/11, macOS 10.14+, or Linux
  • 4 GB RAM minimum (8 GB recommended)

📦 Dependencies

Core Dependencies

Package Version Purpose
NumPy >= 2.0 Numerical computations
Matplotlib >= 3.10 Plotting and visualization
SciPy >= 1.17 Scientific computing and curve fitting
Pandas >= 2.3 Data manipulation
OpenPyXL >= 3.1 Excel file handling
Pillow >= 10.0 Image handling (GUI, logos)
Python-dotenv >= 1.0 Environment configuration
Colorama >= 0.4 Terminal colors
PyYAML >= 6.0 YAML config (equations)
Streamlit >= 1.31 Web interface

Optional

  • Tkinter – Desktop interface (usually included with Python)

🔧 Configuration

RegressionLab is highly configurable through the .env file. See the Configuration Guide for all available options.

Copy .env.example to .env and customize:

cp .env.example .env

🤝 Contributing

Contributions are welcome! Please read the Contributing Guidelines for details on:

  • Development setup
  • Code standards
  • Pull request process

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

For information about third-party libraries and their licenses, see THIRD_PARTY_LICENSES.md.

👨‍💻 Author

Alejandro Mata Ali

📧 Email🐙 GitHub

🔗 Links

💡 Need Help?

  1. Check the User Guide for basic usage.
  2. Review the Troubleshooting Guide for common issues.
  3. Consult the API Documentation for technical details.
  4. Open an issue on GitHub.

Version: 1.1.2 • Last Updated: February 2026

Made with ❤️ by Alejandro Mata Ali

GitHub stars GitHub forks