Visualization API¶
NLSQ provides tools for generating publication-quality figures of fit results.
FitVisualizer¶
- class nlsq.cli.visualization.FitVisualizer[source]
Bases:
objectVisualizer 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:
The FitVisualizer class automates the creation of standardized plots.
Style Presets:
Preset |
Description |
|---|---|
|
(Default) Standard scientific publication style (serif fonts, 300 DPI) |
|
Nature journal specification (single column width, Arial font, no grid) |
|
Science journal specification (sans-serif, compact) |
|
Large fonts and thick lines suitable for slides/projectors |
|
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¶
CLI Reference - Using visualization from the command line