RegressionLab Logo

Getting Started

  • Introduction to RegressionLab
    • 🎯 What is RegressionLab?
      • For Everyone
      • For Technical Users
    • 🌟 Key Benefits
      • 1. Dual Interface
      • 2. Interfaces
      • 3. Multiple Operation Modes
      • 4. Wide Range of Fitting Functions
      • 5. Professional Visualization
      • 6. Uncertainty Handling
      • 7. Multidimensional Regression and Predictions
      • 8. Batch Processing
      • 9. Internationalization
      • 10. Highly Configurable
      • 11. Extensible and Open Source
      • 12. Cross-Platform
    • 🌐 Getting RegressionLab
      • Option 1: Web Version (Easiest)
      • Option 2: Desktop Version (Most Features)
    • 📊 Use Cases
      • Academic Research
      • Engineering
      • Data Science
      • Education
    • 🎓 What You’ll Learn
    • 🚀 Next Steps
  • Installation Guide
    • Prerequisites
      • Required Software
      • System Requirements
    • Installation Methods
      • Method 1: Quick Installation (Recommended)
        • Windows
        • macOS / Linux
      • Method 2: Installation with Git
        • Step 1: Clone the Repository
        • Step 2: Choose Your Setup Method
      • Method 3: Manual Installation (Advanced Users)
        • Step 1: Download or Clone the Repository
        • Step 2: Create Virtual Environment (Optional but Recommended)
        • Step 3: Install Dependencies
        • Step 4: Configure Environment
        • Step 5: Verify Installation
    • Running RegressionLab
      • Desktop Version (Tkinter)
      • Web Version (Streamlit)
    • Updating RegressionLab
      • In-App Update Check (Tkinter, Git Install)
      • If Installed via Git (Manual Update)
      • If Installed via Download
    • Troubleshooting Installation
      • Python Not Found
      • Permission Denied (macOS/Linux)
      • Module Not Found
      • Virtual Environment Issues
      • Git Clone Fails
    • Uninstalling RegressionLab
    • Next Steps
  • User Guide
    • Overview
    • Choosing Your Version
      • Use the Web Version (Streamlit) if:
      • Use the Desktop Version (Tkinter) if:
    • Getting Started
      • Web Version (Streamlit)
        • Option 1: Online (Recommended for Quick Start)
        • Option 2: Local Streamlit
      • Desktop Version (Tkinter)
        • Launching the Application
    • Operation Modes
      • 1. Normal Fitting
      • 2. Multiple Datasets (Single Fit Multiple Datasets)
      • 3. Checker Fitting (Multiple Fits Single Dataset)
      • 4. Total Fitting (All Fits Single Dataset)
    • Understanding Your Data Format
      • Multidimensional Data
      • Required Format
      • Basic Example (CSV)
      • With Uncertainties
      • Supported File Formats
    • Interpreting Results
      • 1. Fitted Parameters
      • 2. Equation
      • 3. Statistical Measures
        • R² (Coefficient of Determination)
        • RMSE (Root Mean Square Error)
        • χ² (Chi-squared)
        • χ²_red (Reduced Chi-squared)
        • ν (Degrees of Freedom)
        • 95% Confidence Intervals (IC 95%)
      • 4. Plot
      • 5. Output File
    • Tips for Better Results
      • Data Quality
      • Choosing Equations
      • Custom Formulas
      • Prediction Window (Desktop)
    • Common Workflows
      • Workflow 1: Quick Analysis
      • Workflow 2: Finding the Best Model
      • Workflow 3: Batch Processing
      • Workflow 4: Iterative Refinement
    • Next Steps

Configuration & Customization

  • Configuration Guide
    • Getting Started with Configuration
      • Configuring from Tkinter (Desktop App)
      • Locating the Configuration File
      • First-time setup
    • Configuration Sections
    • 1. Language Configuration
      • Setting the Application Language
    • 2. UI Theme Configuration
      • Color Settings
        • Background and Foreground
        • Button Colors
      • Layout and Widget Sizes
        • Padding and Button Width
        • Font Settings
        • Input Widget Sizes
        • Data Preview (Text Widget)
      • Example Themes
        • Professional Dark Theme (default-like)
        • Classic Light Theme
        • Ocean Theme
    • 3. Plot Style Configuration
      • Figure Dimensions
      • Title Display
      • Grid Display
      • Fitted Curve Style
      • Data Points Style
      • Colors for Data Points
      • Example Plot Styles
        • Publication Style (Black & White)
        • Colorful Presentation Style
    • 4. Font Configuration
      • Font Family
      • Title Font
      • Axis Labels
      • Tick Labels
      • Example Font Configurations
        • Academic Publication
        • Modern Presentation
    • 5. File Path Configuration
      • Input Directory
      • Output Directory
      • Filename Template
      • Plot Output Format
    • 6. Links (Optional)
    • 7. Update Check (Tkinter)
      • Enable or Disable Update Check
      • Force Check (for Testing)
      • Version Check URL
      • How It Works
    • 8. Logging Configuration
      • Log Level
      • Log File
      • Console Logging
    • Applying Configuration Changes
      • Tkinter (desktop)
      • Streamlit (web)
    • Common Configuration Scenarios
      • Scenario 1: Preparing plots for publication
      • Scenario 2: Quick data exploration
      • Scenario 3: Debugging issues
      • Scenario 4: Batch processing
    • Troubleshooting configuration
      • Changes not applied
      • Invalid color names
      • Font not found
      • Path issues
    • Default configuration
    • Next steps
  • Streamlit Guide
    • Overview
    • Accessing Streamlit
      • Online Version (Recommended)
      • Local Version
    • Interface Layout
      • 1. Sidebar (Left)
      • 2. Main Area (Center)
      • 3. Results Section (Bottom)
    • Language Selection
      • Changing the Language
    • Operation Modes
      • Mode 1: Normal Fitting
      • Mode 2: Multiple Datasets
      • Mode 3: Checker Fitting
      • Mode 4: View Data
      • Mode 5: Total Fitting
    • Data Upload
      • Supported Formats
      • File Size Limits
      • Upload Methods
      • Multiple File Upload
      • Data Preview
    • Understanding Results
      • Column 1: Equation
      • Column 2: Parameters
      • Column 3: Statistics
      • Plot Components
      • R² Value (Coefficient of Determination)
      • Downloading Plots
    • Tips and Best Practices
      • Performance Tips
      • Data Tips
      • Workflow Tips
      • Uncertainty Handling
      • Custom Formula Tips
    • Troubleshooting
      • Upload Issues
      • Fitting Fails
      • Results Not Showing
      • App is Slow
      • Download Doesn’t Work
    • Keyboard Shortcuts
    • Mobile and Tablet Usage
    • Advanced Features
      • Session Persistence
      • Multiple Tabs
    • Appearance and theme
    • Differences from Tkinter Version
    • Next Steps
  • Tkinter Guide
    • Overview
    • Launching the Application
      • Method 1: Desktop Shortcut
      • Method 2: Shell Scripts
      • Method 3: Direct Python Execution
    • Interface Layout
      • Main Menu Window
    • Language
    • Operation Modes
      • Mode 1: Normal Fitting
      • Mode 2: Single Fit Multiple Datasets
      • Mode 3: Checker Fitting (Multiple Fits Single Dataset)
      • Mode 4: Total Fitting
      • Mode 5: Watch Data
      • Mode 6: Information (Help)
      • Configuration Dialog (Configure)
    • Dialog Types
      • Selection Dialogs
      • Text Entry Dialogs
      • Information Dialogs
      • Result Windows
    • File Browsing
      • Default Directories
      • Changing Directories
    • Keyboard Shortcuts
    • Understanding Results
      • Result Window Components
      • Statistics Shown
      • R² Value (Coefficient of Determination)
      • Plot Features
    • Tips and Best Practices
      • Performance
      • Workflow
      • Data Organization
      • Custom Formulas
    • Troubleshooting
      • Application Won’t Start
      • Dialogs Not Appearing
      • File Browser Empty
      • Fitting Fails
      • Result Window Too Large/Small
      • Colors Look Wrong
    • Advanced Features
      • Loop Mode Strategies
      • Batch Processing Workflow
      • Customization
    • Differences from Streamlit Version
    • Next Steps

For Developers

  • Extending RegressionLab
    • Overview
    • Prerequisites
      • Required Knowledge
      • Files You’ll Modify
    • Step-by-Step Guide
      • Step 1: Implement the Model and Fit Function
        • Example: Adding an Exponential Function
        • More Examples
      • Step 2: Create the Fitting Wrapper
        • Basic Template
        • With Initial Guess and Bounds
      • Step 3: Export the Fit Function
      • Step 4: Register in Configuration
        • Add to equations.yaml
        • Add Translations
      • Step 5: Test Your Function
        • Create Test Data
        • Test in Tkinter
        • Test in Streamlit
    • Advanced Topics
      • Parameter Bounds
      • Fixed Parameters
      • Multi-Dimensional Functions
      • Piecewise Functions
    • Code Style Guidelines
      • Follow Existing Conventions
      • Testing
    • Common Patterns
      • Pattern 1: Simple Function
      • Pattern 2: Function with Estimation
      • Pattern 3: Specialized Function
    • Example: Complete Implementation
    • Next Steps
  • Customizing the Fitting Core
    • Overview
    • Current Architecture
      • How Fitting Works Now
      • Key File: fitting_utils.py
    • Why Change the Fitting Core?
      • Reasons to Use a Different Library
      • Popular Alternatives
    • How to Replace the Fitting Core
      • Method 1: Modify generic_fit Function
        • Example: Using lmfit
        • Example: Using scipy.optimize.least_squares
      • Method 2: Create Custom Fitting Wrapper
      • Method 3: Bayesian Fitting with MCMC
    • Advanced: Parameter Constraints and Bounds
      • Adding Bounds to Existing Functions
      • Creating a Configurable Bounds System
    • Performance Considerations
      • Benchmarking Different Backends
      • Optimization Tips
    • Handling Uncertainty Propagation
      • Using uncertainties Package
    • Configuration File Approach
    • Testing New Backends
    • Summary
    • Next Steps
  • API Documentation
    • Architecture Overview
    • Module Reference
      • Core Modules
      • Fitting Modules
      • Data Loading and Saving
      • Data Analysis
      • Visualization
      • User Interface
      • Utilities
    • Quick Start for Developers
      • Setting Up Development Environment
      • Running the Application
      • Code Style
    • Common Development Tasks
      • Adding a New Fitting Function
      • Modifying the UI
      • Adding a New Data Format
      • Changing Plot Style
    • Testing
      • Test Structure
      • Running Tests
      • Writing Tests
    • API Conventions
      • Return Values
      • Error Handling
      • Logging
      • Type Hints
    • Performance Considerations
      • NumPy Best Practices
      • Caching
      • Lazy Imports
    • Documentation
      • Docstring Format
    • Module Details
    • Contributing

Reference & Support

  • Troubleshooting
    • Common Problems and Solutions
      • Installation Issues
        • Problem: Python Not Found
        • Problem: Virtual Environment Not Found (bin launchers)
        • Problem: Permission Denied on Linux/macOS
        • Problem: Virtual Environment Won’t Activate (Windows PowerShell)
        • Problem: Module Not Found After Installation
      • Data Loading Issues
        • Problem: “File not found” Error
        • Problem: CSV File Appears Empty
        • Problem: Excel File Won’t Load
        • Problem: Uncertainty Columns Not Detected
      • Fitting Issues
        • Problem: “Optimal parameters not found”
        • Problem: Low R² Value (Poor Fit)
        • Problem: Parameters Have Huge Uncertainties
      • Plotting Issues
        • Problem: Plot Window is Blank
        • Problem: Plot Quality is Poor
        • Problem: Error Bars Don’t Appear
      • UI Issues (Tkinter)
        • Problem: Dialogs Don’t Appear
        • Problem: Buttons/Text Too Small or Large
        • Problem: Colors Are Unreadable
      • Streamlit Issues
        • Problem: Upload Fails Silently
        • Problem: Results Disappear After Refresh
        • Problem: App is Slow/Unresponsive
      • Android / Mobile Platforms
        • Status: Not Supported (Attempted)
    • Debugging Tips
      • Enable Debug Logging
      • Check Python Environment
      • Isolate the Problem
      • Report a Bug
    • Future Updates and Roadmap
      • Long-Term Goals (2027+)
      • How to Request Features
    • Optimization Tips
      • For Faster Fitting
      • For Better Accuracy
    • Getting Help
      • Resources
      • Contact
  • Contributing to RegressionLab
    • Ways to Contribute
    • Getting Started
      • 1. Fork and Clone
      • 2. Set Up Development Environment
      • 3. Create a Branch
    • Development Guidelines
      • Code Style
        • 1. Line Length
        • 2. Type Hints
        • 3. Docstrings
        • 4. Imports
        • 5. Naming Conventions
        • 6. Comments
      • Testing
        • Writing Tests
        • Running Tests
      • Adding New Fitting Functions
      • Adding Translations
      • Documentation
        • Updating Documentation
        • Building Documentation
    • Submitting Changes
      • 1. Commit Your Changes
      • 2. Push to Your Fork
      • 3. Create Pull Request
      • Pull Request Checklist
      • Review Process
    • Development Setup
      • Recommended Tools
      • VS Code Setup
    • Project Structure
    • Communication
      • Asking Questions
      • Reporting Bugs
      • Suggesting Features
    • Code of Conduct
      • Our Standards
      • Unacceptable Behavior
      • Enforcement
    • License
    • Recognition
  • License
    • MIT License
    • What This Means
      • ✅ You CAN:
      • ⚠️ You MUST:
      • ❌ You CANNOT:
    • Dependencies
      • Core Dependencies
      • License Compatibility
    • Using RegressionLab in Your Project
      • Academic Use
      • Commercial Use
      • Derivative Works
    • Warranty Disclaimer
      • Important for Scientific Use
    • Copyright
      • Original Work
      • Third-Party Components
    • Contributing
    • Trademark
    • Contact
    • Full License Text
    • Version History
    • Frequently Asked Questions
      • Can I use RegressionLab in my company?
      • Do I need to make my code open source if I use RegressionLab?
      • Can I sell a product that includes RegressionLab?
      • Do I need to credit RegressionLab?
      • Can I modify RegressionLab and keep my changes private?
      • What if I find a bug or security issue?
      • Can I use RegressionLab in academic papers?
      • What if I want to contribute code back?

API Reference

  • Core Modules
    • Main Program
      • normal_fitting()
      • single_fit_multiple_datasets()
      • multiple_fits_single_dataset()
      • all_fits_single_dataset()
      • watch_data()
      • show_help()
      • main()
    • Configuration
      • Main Configuration Package
      • Color Utilities
        • lighten_hex()
        • muted_from_hex()
      • Environment Configuration
        • get_env_from_schema()
        • get_env()
        • get_current_env_values()
        • write_env_file()
        • initialize_and_validate_config()
      • Theme Configuration
        • get_entry_font()
        • configure_ttk_styles()
        • apply_hover_to_children()
        • setup_fonts()
      • Paths Configuration
        • get_project_root()
        • ensure_output_directory()
        • get_output_path()
      • Constants
    • Internationalization
      • initialize_i18n()
      • t()
  • Fitting Module
    • Fitting Functions
    • Mathematical Functions
      • Base Types
      • Polynomial Functions
        • generate_polynomial_function()
        • linear_function_with_n()
        • linear_function()
        • quadratic_function_complete()
        • quadratic_function()
        • fourth_power()
        • fit_linear_function_with_n()
        • fit_linear_function()
        • fit_quadratic_function_complete()
        • fit_quadratic_function()
        • fit_fourth_power()
      • Trigonometric Functions
        • generate_trigonometric_function()
        • sin_function()
        • sin_function_with_c()
        • cos_function()
        • cos_function_with_c()
        • sinh_function()
        • cosh_function()
        • tan_function()
        • tan_function_with_c()
        • fit_sin_function()
        • fit_sin_function_with_c()
        • fit_cos_function()
        • fit_cos_function_with_c()
        • fit_sinh_function()
        • fit_cosh_function()
        • fit_tan_function()
        • fit_tan_function_with_c()
      • Inverse Functions
        • ln_function()
        • generate_inverse_function()
        • inverse_function()
        • inverse_square_function()
        • fit_ln_function()
        • fit_inverse_function()
        • fit_inverse_square_function()
      • Special Functions
        • fit_gaussian_function()
        • fit_exponential_function()
        • fit_binomial_function()
        • fit_square_pulse_function()
        • fit_hermite_polynomial_3()
        • fit_hermite_polynomial_4()
    • Fitting Utilities
      • format_scientific()
      • format_parameter()
      • generic_fit()
      • get_equation_param_info()
      • get_equation_format_for_function()
      • get_equation_param_names_for_function()
      • merge_initial_guess()
      • merge_bounds()
      • get_fitting_function()
    • Custom Function Evaluator
      • CustomFunctionEvaluator
        • CustomFunctionEvaluator.__init__()
        • CustomFunctionEvaluator.fit()
        • CustomFunctionEvaluator.get_function()
        • CustomFunctionEvaluator.__repr__()
    • Workflow Controller
      • reload_data_by_type()
      • single_fit_with_loop()
      • multiple_fit_with_loop()
      • apply_all_equations()
      • coordinate_data_loading()
      • coordinate_data_viewing()
      • coordinate_equation_selection()
      • coordinate_custom_equation()
    • Estimators
      • estimate_trigonometric_parameters()
      • estimate_phase_shift()
      • estimate_linear_parameters()
      • estimate_polynomial_parameters()
      • estimate_single_power_parameter()
      • estimate_ln_parameter()
      • estimate_inverse_parameter()
      • estimate_gaussian_parameters()
      • estimate_binomial_parameters()
      • estimate_exponential_parameters()
      • estimate_square_pulse_parameters()
      • estimate_hyperbolic_parameters()
      • estimate_hyperbolic_bounds()
  • Loaders Module
    • Data Loader
      • load_data()
      • get_variable_names()
    • Loading Utilities
      • csv_reader()
      • txt_reader()
      • excel_reader()
    • Saving Utilities
      • save_dataframe()
      • get_default_save_directory()
  • Data Analysis Module
    • Main Package
    • Transforms
      • apply_transform()
    • Cleaning
      • apply_cleaning()
  • Plotting Module
    • Plotting Utilities
      • create_pair_plots()
      • create_plot()
      • create_residual_plot()
      • create_3d_plot()
  • Frontend Module
    • Main Menu
      • create_main_menu()
      • show_exit_confirmation()
      • start_main_menu()
    • Image Utilities
      • plot_display_path()
      • preview_path_to_remove_after_display()
      • load_image_scaled()
    • Keyboard Navigation
      • bind_enter_to_accept()
      • setup_arrow_enter_navigation()
    • Window Positioning
      • place_window_centered()
    • Dialogs
      • Load Data Dialog
        • open_load_dialog()
      • Save Data Dialog
        • open_save_dialog()
      • Data Selection Dialog
        • ask_variables()
        • ask_multiple_x_variables()
        • show_data_dialog()
      • Equation Dialog
        • ask_equation_type()
        • ask_num_parameters()
        • ask_parameter_names()
        • ask_custom_formula()
        • ask_num_fits()
      • Help Dialog
        • remove_markdown_bold()
        • show_data_view_help_dialog()
        • show_help_dialog()
      • Configuration Dialog
        • show_config_dialog()
      • Result Dialog
        • create_result_window()
      • Tooltip
        • bind_tooltip()
  • Streamlit Web Application
    • Main Application
      • main()
    • Theme Configuration
      • get_streamlit_theme()
      • get_main_css()
    • Application Sections
      • Main Sections Package
      • Sidebar Section
        • initialize_session_state()
        • cycle_language()
        • setup_sidebar()
        • show_logo()
      • Data Section
        • load_uploaded_file()
        • show_data_with_pair_plots()
        • get_temp_output_dir()
        • get_variable_names()
      • Fitting Section
        • perform_fit()
        • select_variables()
        • show_equation_selector()
      • Results Section
        • show_results()
      • Help Section
        • show_help_section()
      • Modes Section
        • mode_view_data()
        • mode_normal_fitting()
        • mode_multiple_datasets()
        • mode_checker_fitting()
        • mode_total_fitting()
  • Utilities Module
    • Logger
      • setup_logging()
      • get_logger()
      • log_exception()
    • Exceptions
      • RegressionLabError
      • DataLoadError
      • DataValidationError
      • FileNotFoundError
      • InvalidFileTypeError
      • FittingError
      • EquationError
      • ValidationError
    • Validators
      • validate_file_path()
      • validate_file_type()
      • validate_dataframe()
      • validate_fitting_data()
      • validate_parameter_names()
      • parse_optional_float()
      • validate_data_format()
    • Update Checker
      • should_run_check()
      • record_check_done()
      • is_update_available()
      • perform_git_pull()
RegressionLab
  • Overview: module code

All modules for which code is available

  • config.color_utils
  • config.env
  • config.paths
  • config.theme
  • data_analysis.cleaning
  • data_analysis.transforms
  • fitting.custom_function_evaluator
  • fitting.estimators
  • fitting.fitting_utils
  • fitting.functions.inverse
  • fitting.functions.polynomials
  • fitting.functions.special
  • fitting.functions.trigonometric
  • fitting.workflow_controller
  • frontend.image_utils
  • frontend.keyboard_nav
  • frontend.ui_dialogs.config_dialog
  • frontend.ui_dialogs.data_selection
  • frontend.ui_dialogs.equation
  • frontend.ui_dialogs.help
  • frontend.ui_dialogs.load_data_dialog
  • frontend.ui_dialogs.result
  • frontend.ui_dialogs.save_data_dialog
  • frontend.ui_dialogs.tooltip
  • frontend.ui_main_menu
  • frontend.window_utils
  • i18n
  • loaders.data_loader
  • loaders.loading_utils
  • loaders.saving_utils
  • main_program
  • plotting.plot_utils
  • streamlit_app.app
  • streamlit_app.sections.data
  • streamlit_app.sections.fitting
  • streamlit_app.sections.help_section
  • streamlit_app.sections.modes
  • streamlit_app.sections.results
  • streamlit_app.sections.sidebar
  • streamlit_app.theme
  • utils.exceptions
  • utils.logger
  • utils.update_checker
  • utils.validators

© Copyright 2026, Alejandro Mata Ali.

Built with Sphinx using a theme provided by Read the Docs.