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.