# [Numpy-discussion] Producing a Histogram When Bins Are Known

Wayne Watson sierra_mtnview@sbcglobal....
Fri Nov 27 07:43:51 CST 2009

```Thanks. That sounds like it should help a lot. Finding meaningful
examples anywhere hasn't been easy. I thought I'd look through Amazon
for books on Python and scientific uses. I found almost all were written
by authors outside the US, and none seemed to talk about items like
matplotlib. Ezdraw or something like that was often cited. I'm
definitely in a learning stage, and much of what I need is in graphics
to support some data analysis that I'm doing.

Glad to hear it can gather bins into groups. It would be very
disappointing if such a mechanism did not  exist. In the distant past,
I've all too often had to write my own histogram programs for this,
FORTRAN, etc.  My data is from a 640x480 collection of b/w pixels, which
a processor has binned from 0-255, so I don't want repeat doing a
histogram on 307K data points.

Vincent Schut wrote:
> Wayne Watson wrote:
>
>> I have a list that already has the frequencies from 0 to 255. However,
>> I'd like to make a histogram  that has say 32 bins whose ranges are 0-7,
>> 8-15, ... 248-255. Is it possible?
>>
>>
> Wayne,
>
> you might find the 'numpy example list with doc' webpage quite
> informative... http://www.scipy.org/Numpy_Example_List_With_Doc (give it
> some time to load, it's pretty large...)
> For new users (I was one once...) it usually takes some time to find the
> usual suspects in numpy/scipy help and docs... This one page has really
> become unvaluable for me.
>
> It gives you the docstrings for numpy functions, often including some
> example code.
>
> If you check out the histogram() function, you'll see it takes a 'bins='
> argument:
>
> bins : int or sequence of scalars, optional
>      If `bins` is an int, it defines the number of equal-width
>      bins in the given range (10, by default). If `bins` is a sequence,
>      it defines the bin edges, including the rightmost edge, allowing
>      for non-uniform bin widths.
>
> So, if your bins are known, you can pass it to numpy.histogram, either
> as number-of-bins (if equal width), if necessary combined with the
> 'range=' parameter to specify the range to divide into equal bins, or as
> bin edges (e.g. in your case: (0, 8, 16, ... 256) or
> numpy.linspace(0,256,33) which will give you this range nicely.
>
> If you don't specify the 'range=' parameter, it will check the min and
> max from your input data and use that as lower and upper bounds.
>
> Good luck learning numpy! :)
>
> Vincent.
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>

--

(121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
Obz Site:  39° 15' 7" N, 121° 2' 32" W, 2700 feet

350 350 350 350 350 350 350 350 350 350
Make the number famous. See 350.org
The major event has passed, but keep the number alive.

Web Page: <www.speckledwithstars.net/>

```