- **Python**
(*http://www.velocityreviews.com/forums/f43-python.html*)

- - **Plot a function with matplotlib?**
(*http://www.velocityreviews.com/forums/t946371-plot-a-function-with-matplotlib.html*)

Plot a function with matplotlib?I have matplotlib and iPython, and want to plot a function over an
equally-spaced range of points. That is to say, I want to say something like this: plot(func, start, end) rather than generating the X and Y values by hand, and plotting a scatter graph. All the examples I've seen look something like this: from pylab import * import numpy as np t = arange(0.0, 2.0+0.01, 0.01) # generate x-values s = sin(t*pi) # and y-values plot(t, s) show() which is fine for what it is, but I'm looking for an interface closer to what my HP graphing calculator would use, i.e. something like this: plot(lambda x: sin(x*pi), # function or expression to plot, start=0.0, end=2.0, ) and have step size taken either from some default, or better still, automatically calculated so one point is calculated per pixel. Is there a way to do this in iPython or matplotlib? -- Steven |

Re: Plot a function with matplotlib?On Sat, 19 May 2012 01:59:59 +0000, Steven D'Aprano wrote:
> I have matplotlib and iPython, and want to plot a function over an > equally-spaced range of points. > > That is to say, I want to say something like this: > > plot(func, start, end) > > rather than generating the X and Y values by hand, and plotting a > scatter graph. All the examples I've seen look something like this: > > from pylab import * > import numpy as np > t = arange(0.0, 2.0+0.01, 0.01) # generate x-values s = sin(t*pi) # > and y-values > plot(t, s) > show() > > > which is fine for what it is, but I'm looking for an interface closer to > what my HP graphing calculator would use, i.e. something like this: > > > plot(lambda x: sin(x*pi), # function or expression to plot, > start=0.0, > end=2.0, > ) > > and have step size taken either from some default, or better still, > automatically calculated so one point is calculated per pixel. > > Is there a way to do this in iPython or matplotlib? Not to my knowledge unless you code it yourself. However in gnuplot (www.gnuplot.info) gnuplot>>> set xrange[start:end] gnuplot>>> foo(x)=mycomplicatedfunction(x) gnuplot>>> plot foo(x) or shorter still gnuplot>>> plot [start:end] foo(x) without the need to set the xrange in advance. |

Re: Plot a function with matplotlib?> I'm looking for an interface closer to
> what my HP graphing calculator would use, i.e. something like this: > > > plot(lambda x: sin(x*pi), # function or expression to plot, > start=0.0, > end=2.0, > ) > > and have step size taken either from some default, or better still, > automatically calculated so one point is calculated per pixel. > > Is there a way to do this in iPython or matplotlib? I don't think there is, but using range and list comprehension you can write a little utility function that does that: HTH -- Miki Tebeka <miki.tebeka@gmail.com> http://pythonwise.blogspot.com def simplot(fn, start, end): xs = range(start, end+1) plot(xs, [fn(x) for x in xs)]) |

All times are GMT. The time now is 06:18 AM. |

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.

SEO by vBSEO ©2010, Crawlability, Inc.