How do you fit a graph in python?

Have a look at

https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.optimize.curve_fit.html,

there is an example at the bottom, which pretty much does what you are after.

Edit: Reply to comment

import matplotlib.pyplot as plt;
import numpy as np;
import scipy.optimize as opt;

# This is the function we are trying to fit to the data.
def func(x, a, b, c):
     return a * np.exp(-b * x) + c

# Generate some data, you don't have to do this, as you already have your data
xdata = np.linspace(0, 4, 50)
y = func(xdata, 2.5, 1.3, 0.5)
y_noise = 0.2 * np.random.normal(size=xdata.size)
ydata = y + y_noise

# Plot the actual data
plt.plot(xdata, ydata, ".", label="Data");

# The actual curve fitting happens here
optimizedParameters, pcov = opt.curve_fit(func, xdata, ydata);

# Use the optimized parameters to plot the best fit
plt.plot(xdata, func(xdata, *optimizedParameters), label="fit");

# Show the graph
plt.legend();
plt.show();

The x, y data are the xdata and ydata variables.

So if you want to use this code, just take out the bit where the data is generated, and define your x, y data arrays as "xdata" and "ydata".

Demos a simple curve fitting

First generate some data

import numpy as np

# Seed the random number generator for reproducibility
np.random.seed(0)

x_data = np.linspace(-5, 5, num=50)
y_data = 2.9 * np.sin(1.5 * x_data) + np.random.normal(size=50)

# And plot it
import matplotlib.pyplot as plt
plt.figure(figsize=(6, 4))
plt.scatter(x_data, y_data)

How do you fit a graph in python?

Now fit a simple sine function to the data

from scipy import optimize

def test_func(x, a, b):
    return a * np.sin(b * x)

params, params_covariance = optimize.curve_fit(test_func, x_data, y_data,
                                               p0=[2, 2])

print(params)

Out:

[3.05931973 1.45754553]

And plot the resulting curve on the data

plt.figure(figsize=(6, 4))
plt.scatter(x_data, y_data, label='Data')
plt.plot(x_data, test_func(x_data, params[0], params[1]),
         label='Fitted function')

plt.legend(loc='best')

plt.show()

How do you fit a graph in python?

Total running time of the script: ( 0 minutes 0.026 seconds)

Download Python source code: plot_curve_fit.py

Download Jupyter notebook: plot_curve_fit.ipynb

Gallery generated by Sphinx-Gallery

How do you fit a plot in Python?

How to plot a line of best fit in Python.
x = np. array([1, 3, 5, 7]).
y = np. array([ 6, 3, 9, 5 ]).
m, b = np. polyfit(x, y, 1) m = slope, b = intercept..
plt. plot(x, y, 'o') create scatter plot..
plt. plot(x, m*x + b) add line of best fit..

How do you fit a curve?

The most common way to fit curves to the data using linear regression is to include polynomial terms, such as squared or cubed predictors. Typically, you choose the model order by the number of bends you need in your line. Each increase in the exponent produces one more bend in the curved fitted line.

How do you fit a non linear curve in Python?

Non linear curve fitting with python.
Python set up..
Read and plot data..
Fit a model on the data. First step : the function. Second step : initialisation of parameters. Third step : Do the fit. Fourth step : Results of the fit. Make a plot..
Uncertainties on both x and y. Add x uncertainties. Make the fits. Plot the results..

How do you fit a curve to a histogram in Python?

How to fit a distribution to a histogram in Python.
data = np. random. normal(0, 1, 1000) generate random normal dataset..
_, bins, _ = plt. hist(data, 20, density=1, alpha=0.5) create histogram from `data`.
mu, sigma = scipy. stats. norm. fit(data).
best_fit_line = scipy. stats. norm. ... .
plt. plot(bins, best_fit_line).