Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import matplotlib.pylab as mp
- import pandas as pd
- from lmfit import minimize, Parameters, report_fit
- #path = "/Users/paulgauthier/Documents/Postdoc/Princeton/Results/Vo_Calculations/For LmFit MichMenten.csv"
- # x=np.linspace(-100,300,500)
- data = pd.read_csv( path )
- y = data[0.037849903,0.033348401,0.025744915,0.018811544,0.015011589,0.011411627,0.008685033 -0.000378251,0]
- x = data[1,0.5,0.25,0.125,0.0625,0.03125,0.015625,0.0078125,0]
- def res(params, x, y):
- Vmax = params['Vmax'].value
- Km = params['Km'].value
- model = Vmax * x / (Km + x)
- return model - y
- params = Parameters( )
- params.add( 'Vmax', value=15 )
- params.add( 'Km', value=200 )
- result = minimize( res, params, args=(x, y) )
- final = y + result.residual
- report_fit( params )
- Vmax = params['Vmax'].value
- Km = params['Km'].value
- data['fitted'] = Vmax * x / (Km + x)
- data.to_csv( path )
- fitted = data['fitted']
- mp.plot( x, y, 'k', label='Raw' )
- mp.plot( x, final, 'r', label='final' )
- mp.plot( x, fitted, 'r', label='fitted' )
- mp.legend( loc=4 )
- mp.xlabel( 'Light intensity', fontsize=16 )
- mp.ylabel( 'Net Oxygen Prodcution (umol m-2 s-1)', fontsize=16 )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement