From: Krzysztof Berniak <krzysztof.berniak@gm...>  20111112 16:43:18
Attachments:
Message as HTML

Hi all, I'm writing script in python, which fitting exponencial curve to data ( f(x) = a*exp(x*b). To this problem, I use gnuplot in my script. Gnuplot display parameters ( a +/ delta a; b +/ delta b) How Can I use/save this parameters in python variables in next steps of my script, def main(): ... plot = Gnuplot.Gnuplot() plot('f1(x) = a1*exp(b1*x)') plot('a1 = 300; b1 = 0.005;') plot('fit f1(x) "data.txt" using 1:2 via a1, b1') print "first parameter", a1 print "second parameter", b1 # is it feasible ? Or there is another way to see the results ( parameter a1 and b1) of gnuplot by python #plot('set terminal postscript') #plot('set output "output.ps"') regards and please help, Cristopher 
From: Michael Haggerty <mhagger@al...>  20111114 09:16:42

On 11/12/2011 05:43 PM, Krzysztof Berniak wrote: > I'm writing script in python, which fitting exponencial curve to data ( > f(x) = a*exp(x*b). > To this problem, I use gnuplot in my script. Gnuplot display parameters > ( a +/ delta a; b +/ delta b) > How Can I use/save this parameters in python variables in next steps of > my script, > > def main(): > ... > > > plot = Gnuplot.Gnuplot() > > plot('f1(x) = a1*exp(b1*x)') > plot('a1 = 300; b1 = 0.005;') > plot('fit f1(x) "data.txt" using 1:2 via a1, b1') > > print "first parameter", a1 > print "second parameter", b1 # is it feasible ? Or there is > another way to see the results ( parameter a1 and b1) of gnuplot by python > > #plot('set terminal postscript') > #plot('set output "output.ps <http://output.ps>"';) The communication from Gnuplot.py to gnuplot is currently onedirectional only. Therefore, there is no way for Gnuplot.py to see the output that gnuplot writes to the terminal. So without rewriting Gnuplot.py to change that fact (which would be a big job), the easiest thing would be to have gnuplot write the results of the fit to a file (see "help update"), then have Python read that file. If you want more information about the fit, you can read the logfile that gnuplot's "fit" command generates (see "help fit", "help set fit"). Michael  Michael Haggerty mhagger@... http://softwareswirl.blogspot.com/ 
From: Krzysztof Berniak <krzysztof.berniak@gm...>  20111122 21:05:27
Attachments:
Message as HTML

Hi, Thanks for your answers. I don't have more time to play with gnuplot so I decided to use only python's tools Finally I use scipy to fittnig my data. This is my code def main(): z,f = numbers_col() fitfunc = lambda v, z: v[0]*exp(z*v[1]) errfunc = lambda v, z,f: fitfunc(v,z)  f v0 = [10., 0.005] v1,success = optimize.leastsq(errfunc, v0[:], args = (z,f),full_output=True) best regars, Cris 2011/11/14 Michael Haggerty <mhagger@...> > On 11/12/2011 05:43 PM, Krzysztof Berniak wrote: > > I'm writing script in python, which fitting exponencial curve to data ( > > f(x) = a*exp(x*b). > > To this problem, I use gnuplot in my script. Gnuplot display parameters > > ( a +/ delta a; b +/ delta b) > > How Can I use/save this parameters in python variables in next steps of > > my script, > > > > def main(): > > ... > > > > > > plot = Gnuplot.Gnuplot() > > > > plot('f1(x) = a1*exp(b1*x)') > > plot('a1 = 300; b1 = 0.005;') > > plot('fit f1(x) "data.txt" using 1:2 via a1, b1') > > > > print "first parameter", a1 > > print "second parameter", b1 # is it feasible ? Or there is > > another way to see the results ( parameter a1 and b1) of gnuplot by > python > > > > #plot('set terminal postscript') > > #plot('set output "output.ps <http://output.ps>"';) > > The communication from Gnuplot.py to gnuplot is currently > onedirectional only. Therefore, there is no way for Gnuplot.py to see > the output that gnuplot writes to the terminal. > > So without rewriting Gnuplot.py to change that fact (which would be a > big job), the easiest thing would be to have gnuplot write the results > of the fit to a file (see "help update"), then have Python read that > file. If you want more information about the fit, you can read the > logfile that gnuplot's "fit" command generates (see "help fit", "help > set fit"). > > Michael > >  > Michael Haggerty > mhagger@... > http://softwareswirl.blogspot.com/ > 