From: Eric F. <ef...@ha...> - 2006-09-08 17:24:24
|
I suggest using masked arrays to ensure you are only trying to plot real numbers: def f(x): y = log(x) ygood = (y < 1e38) & (y > -1e-38) yy = nx.ma.masked_where(ygood == 0, y) return yy Note the parentheses and peculiar use of bitwise-and in the definition of ygood. This is a hack to get around the fact that the logical-and operator in python cannot be overloaded at present, and so is not available in numpy. Eric Davidlohr Bueso A. wrote: > Hi all, > > I'm having trouble plotting functions were the domain aren't the real > numbers (R). Functions like x**-n, log(x), etc. Does anyone know if > there's a simple way of solving this problem. Here's a little script and > it's error: > > from pylab import * > > def f(x): > return log(x) > > x = arange(-3, 4) > plot(x, f(x)) > show() |