On 25/11/2007, Rich Shepard <[EMAIL PROTECTED]> wrote:
> On Sun, 25 Nov 2007, Angus McMorland wrote:
>
> > I'm not completely sure, but I suspect that this is an implementation bug,
> > rather than a version bug, particularly because the line in question isn't
> > involving matplotlib at all. If you post the relevant code
> > (normal-curve.py, by the looks of things), it might be easy to spot the
> > problem.
>
> Angus,
>
>    I've seen the same error trying to plot other curves in the past couple of
> days, but not those using the Boltzmann distribution. Here's the file:
>
> import matplotlib.numerix as nx
> import pylab as p
> from math import *
>
> center = 50.0
> fwhm = 50.0
>
> def fwhm2k(fwhm):
>    '''converts fwhm value to k (see above)'''
>    return fwhm/(2 * nx.sqrt(nx.log(2)))
>
> def gauss1d(r, fwhm, center):
>    '''returns the 1d gaussian given by fwhm (full-width at half-max),
>    and c (centre) at positions given by r
>    '''
>    return exp(-(r-center)**2 / fwhm2k(fwhm)**2)
>
> x = nx.arange(0, 100, 0.1)
> G = gauss1d(x, fwhm, center)
> p.plot(x, G, color='red', lw=2)
> p.axis([0, 100, 0.0, 1.0])
> p.xlabel('Universe of Discourse')
> p.ylabel('Membership Grade')
> p.show()
>

As I suspected, this is a parameter issue- in this case caused by your
use of the ath module routines which require scalar input, rather than
numpy's (or matplotlib's numerix's) array-friendly versions. If you
change exp -> nx.exp in your definition of gauss1d, all works okay.

A.
-- 
AJC McMorland, PhD Student
Physiology, University of Auckland

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to