Skip to main content
RSS feed Subscribe to feed


Creating a Fitting Model

Curve fitting is the process of calculating values from visualization coordinates and input parameters, to draw reference curves and points.


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:


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.