Curve fitting is the process of calculating values from visualization coordinates and input parameters, to draw reference curves and points.
Overview
Spotfire includes a number of predefined curve fitting calculations, such as
Logistic Regression curve fit and a Polynomial curve fit. The CustomFittingModel
extension point enables the creating of custom curve fit algorithms.
Curves can be added to scatter plots, bar charts, box plots and line charts. The
markers in any of these visualizations can be categorized. To make curve fitting
apply individually to a category, specify a combination of Color, Trellis, Shape
or Line axes – the supported axes vary between visualizations. Letting the
fitting model categorize over the colors results in one curve for each color.
The results of a curve fit from an external system can be imported into a table and
used as pre-calculated result variables to render curves.
Tutorials and Examples
Fitting Models
Visualizations supporting curve fits are extended with a collection of fitting models.
The base class for fitting models is called
FittingModel.
A visualization may have multiple instances of fitting models running at the same
time, and each fitting model may define a number of curves and points.
Curves and points are implemented by the document nodes
ReferenceCurve
and
ReferencePoint.
The FittingModels node on a visualization have convenience methods
to add the built-in curve fits to the visualization.
Adding a straight line fit to a scatter plot only requires one line of code:
scatterPlot.FittingModels.AddStraightLineFit();
Fitting to Data
The fitting model must declare the result variables it will return before fitting
can be performed. By overriding the
ConfigureModelCore,
names and descriptions for result values are registered using
RegisterResultVariable.
All result variables have the assumed double data type and must be
assigned values of this type to avoid error. Expressions may also be set by
SetCurveExpression
and
SetPointExpressions
respectively.
The actual fitting operation is performed by the
Fit
method. The first parameter, of
FittingModelData
type, retrieves the data values. The
GetRows
method returns a row cursor for iteration combined with two cursors over X
and Y values for iterating over the data points used by the plot.
The second parameter, of
FittingModelOutput
type, provides the overloaded
SetResult
method enabling the setting of registered variables.
When individual fitting is defined for an axis, the Fit method will
be called once for each category, since the fitting model instance is unaware of
how the data has been categorized.