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. -- http://mail.python.org/mailman/listinfo/python-list