Visualization API

NLSQ provides tools for generating publication-quality figures of fit results.

FitVisualizer

class nlsq.cli.visualization.FitVisualizer[source]

Bases: object

Visualizer for curve fitting results.

Generates publication-quality plots including combined fit + residuals layouts, histograms, and confidence bands.

None
generate(result, data, model, config)[source]

Generate all configured visualizations and save to files.

Examples

>>> visualizer = FitVisualizer()
>>> result = {"popt": [1.0, 0.5], "pcov": [[0.01, 0], [0, 0.02]], ...}
>>> data = {"xdata": x, "ydata": y}
>>> config = {"visualization": {"enabled": True, "output_dir": "figures"}}
>>> output_paths = visualizer.generate(result, data, model, config)
generate(result, data, model, config)[source]

Generate visualizations based on configuration.

Parameters:
  • result (dict) – Fit result dictionary containing: - popt: Fitted parameters - pcov: Covariance matrix - fun: Residuals (optional) - statistics: Dict with r_squared, rmse, etc.

  • data (dict) – Data dictionary containing: - xdata: Independent variable array - ydata: Dependent variable array - sigma: Uncertainties (optional)

  • model (callable) – Model function f(x, *params).

  • config (dict) – Configuration dictionary with visualization section.

Returns:

List of output file paths that were generated.

Return type:

list[str]

The FitVisualizer class automates the creation of standardized plots.

Style Presets:

Preset

Description

publication

(Default) Standard scientific publication style (serif fonts, 300 DPI)

nature

Nature journal specification (single column width, Arial font, no grid)

science

Science journal specification (sans-serif, compact)

presentation

Large fonts and thick lines suitable for slides/projectors

minimal

Clean look with no grid or top/right spines

Example:

from nlsq.cli.visualization import FitVisualizer

visualizer = FitVisualizer()

# Using a configuration dictionary
config = {
    "visualization": {
        "style": "nature",
        "output_dir": "figures",
        "formats": ["pdf", "png"],
    }
}

# Generate plots
paths = visualizer.generate(result, data, model, config)

CurveFitResult Plotting

The CurveFitResult object returned by curve_fit() or fit() includes methods for quick verification plots.

CurveFitResult.plot(ax=None, show_residuals=True, show_confidence=True)

Plot the data, fitted curve, and confidence bands.

Parameters:
  • ax – Optional matplotlib axes to plot on.

  • show_residuals – If True, adds a residuals subplot.

  • show_confidence – If True, plots the 95% confidence band (requires covariance).

CurveFitResult.confidence_band(x, alpha=0.95)

Calculate the confidence interval for the mean response at points x.

Parameters:
  • x – Input coordinate array.

  • alpha – Confidence level (0 to 1, default 0.95).

Returns:

(lower_bound, upper_bound) arrays.

Uses the Delta Method (error propagation using the Jacobian matrix) to estimate uncertainties.

See Also