skspatial.objects.Circle.best_fit

classmethod Circle.best_fit(points: Union[ndarray, Sequence]) Circle[source]

Return the circle of best fit for a set of 2D points.

Parameters:
pointsarray_like

Input 2D points.

Returns:
Circle

The circle of best fit.

Raises:
ValueError

If the points are not 2D. If there are fewer than three points. If the points are collinear.

References

https://meshlogic.github.io/posts/jupyter/curve-fitting/fitting-a-circle-to-cluster-of-3d-points/

Examples

>>> import numpy as np
>>> from skspatial.objects import Circle
>>> points = [[1, 1], [2, 2], [3, 1]]
>>> circle = Circle.best_fit(points)
>>> circle.point
Point([2., 1.])
>>> np.round(circle.radius, 2)
1.0