Show Sidebar Hide Sidebar

Polynomial Fit in Python

Create a polynomial fit / regression in Python and add a line of best fit to your chart.

New to Plotly?¶

You can set up Plotly to work in online or offline mode, or in jupyter notebooks.
We also have a quick-reference cheatsheet (new!) to help you get started!

Version Check¶

Note: Polynomial fits are available in version 1.9.2+
Run pip install plotly --upgrade to update your Plotly version

In [1]:
import plotly
plotly.__version__

Out[1]:
'1.12.12'

Polynomial Fit¶

In [2]:
# Learn about API authentication here: https://plot.ly/python/getting-started
# Find your api_key here: https://plot.ly/settings/api

import plotly.plotly as py
import plotly.graph_objs as go

# Scientific libraries
import numpy as np

points = np.array([(1, 1), (2, 4), (3, 1), (9, 3)])

# get x and y vectors
x = points[:,0]
y = points[:,1]

# calculate polynomial
z = np.polyfit(x, y, 3)
f = np.poly1d(z)
print f

# calculate new x's and y's
x_new = np.linspace(x[0], x[-1], 50)
y_new = f(x_new)

# Creating the dataset, and generating the plot
trace1 = go.Scatter(
x=x,
y=y,
mode='markers',
marker=go.Marker(color='rgb(255, 127, 14)'),
name='Data'
)

trace2 = go.Scatter(
x=x_new,
y=y_new,
mode='lines',
marker=go.Marker(color='rgb(31, 119, 180)'),
name='Fit'
)

annotation = go.Annotation(
x=6,
y=-4.5,
text='$\textbf{Fit}: 0.43X^3 - 0.56X^2 + 16.78X + 10.61$',
showarrow=False
)
layout = go.Layout(
title='Polynomial Fit in Python',
plot_bgcolor='rgb(229, 229, 229)',
xaxis=go.XAxis(zerolinecolor='rgb(255,255,255)', gridcolor='rgb(255,255,255)'),
yaxis=go.YAxis(zerolinecolor='rgb(255,255,255)', gridcolor='rgb(255,255,255)'),
annotations=[annotation]
)

data = [trace1, trace2]
fig = go.Figure(data=data, layout=layout)

py.plot(fig, filename='Polynomial-Fit-in-python')

        3         2
0.4345 x - 5.607 x + 16.78 x - 10.61

Out[2]:
u'https://plot.ly/~PythonPlotBot/166'
Still need help?