Yep, that's what I did in the end... it also means that a simple argument could
be added to the axes.hist() to do such operation, I described this in a
previous post (see below, changes are in major cap).
Thanks for the tip,
Aure
def hist(self, x, bins=10, RELPERCENT = 1, normed=0, bottom=None,
align='edge', orientation='vertical', width=None,
log=False, **kwargs):
"""
if not self._hold: self.cla()
n, bins = npy.histogram(x, bins, range=None, normed=normed)
IF NOT NORMED AND RELPERCENT: N = N/FLOAT(LEN(X))
if width is None: width = 0.9*(bins[1]-bins[0])
if orientation == 'horizontal':
patches = self.barh(bins, n, height=width, left=bottom,
align=align, log=log)
elif orientation == 'vertical':
patches = self.bar(bins, n, width=width, bottom=bottom,
align=align, log=log)
else:
raise ValueError, 'invalid orientation: %s' % orientation
for p in patches:
p.update(kwargs)
return n, bins, cbook.silent_list('Patch', patches)
----- Message d'origine ----
De : Bernhard Voigt <[EMAIL PROTECTED]>
À : Auré Gourrier <[EMAIL PROTECTED]>
Cc : matplotlib-users@lists.sourceforge.net
Envoyé le : Dimanche, 24 Février 2008, 19h10mn 47s
Objet : Re: [Matplotlib-users] plot a histogram of relative percentage of data
Hi!
You could also use the bar method and do the histogram with numpy:
import numpy as n
import pylab as p
foo = n.random.normal(size=100)
p.hist(foo, 20)
p.twinx()
counts, bins = n.histogram(foo, 20)
counts = counts.astype(float)/len(foo)
width = (bins[1]-bins[0]) * .9
p.bar(bins ,counts, width=width, fc='r')
Cheers! Bernhard
On Fri, Feb 22, 2008 at 4:08 PM, Auré Gourrier <[EMAIL PROTECTED]> wrote:
Hi all,
In my latest post, I wanted to use the mpl.hist() function in a different way,
i.e.:
x = datalist
bins= 100
hist(x,bins,normed=0) #returns a tupple (n,bins,patches)
Instead of ploting the number of counts n, I wanted to plot the relative
percentage of counts, i.e. n/len(x). I can't really use the option normed=1
which returns n/(len(x)*dbin). In the axes.py module, this would simply mean
adding an argument e.g. relpercent = 1. I added the code line to show how this
could be done (in major cap). If this is useful, how could it be modified in
the distribution ?
def hist(self, x, bins=10, RELPERCENT = 1, normed=0, bottom=None,
align='edge', orientation='vertical', width=None,
log=False, **kwargs):
"""
if not self._hold: self.cla()
n, bins = npy.histogram(x, bins, range=None, normed=normed)
IF NOT NORMED AND RELPERCENT: N = N/FLOAT(LEN(X))
if width is None: width = 0.9*(bins[1]-bins[0])
if orientation == 'horizontal':
patches = self.barh(bins, n, height=width, left=bottom,
align=align, log=log)
elif orientation == 'vertical':
patches = self.bar(bins, n, width=width, bottom=bottom,
align=align, log=log)
else:
raise ValueError, 'invalid orientation: %s' % orientation
for p in patches:
p.update(kwargs)
return n, bins, cbook.silent_list('Patch', patches)
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo!
Mail
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
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
______________________________________________________________________________
Yahoo! Mail : un mail innovant avec Messenger compatible Windows Live +
stockage illimité. http://mail.yahoo.fr
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
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