511 lines
21 KiB
HTML
Executable file
511 lines
21 KiB
HTML
Executable file
<?xml version="1.0" encoding="ascii"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<title>Scientific.Statistics.Histogram.Histogram</title>
|
|
<link rel="stylesheet" href="epydoc.css" type="text/css" />
|
|
<script type="text/javascript" src="epydoc.js"></script>
|
|
</head>
|
|
|
|
<body bgcolor="white" text="black" link="blue" vlink="#204080"
|
|
alink="#204080">
|
|
<!-- ==================== NAVIGATION BAR ==================== -->
|
|
<table class="navbar" border="0" width="100%" cellpadding="0"
|
|
bgcolor="#a0c0ff" cellspacing="0">
|
|
<tr valign="middle">
|
|
<!-- Home link -->
|
|
<th> <a
|
|
href="Scientific-module.html">Home</a> </th>
|
|
|
|
<!-- Tree link -->
|
|
<th> <a
|
|
href="module-tree.html">Trees</a> </th>
|
|
|
|
<!-- Index link -->
|
|
<th> <a
|
|
href="identifier-index.html">Indices</a> </th>
|
|
|
|
<!-- Help link -->
|
|
<th> <a
|
|
href="help.html">Help</a> </th>
|
|
|
|
<!-- Project homepage -->
|
|
<th class="navbar" align="right" width="100%">
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><th class="navbar" align="center"
|
|
><a class="navbar" target="_top" href="http://dirac.cnrs-orleans.fr/ScientificPython/">Scientific Python</a></th>
|
|
</tr></table></th>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
<tr valign="top">
|
|
<td width="100%">
|
|
<span class="breadcrumbs">
|
|
<a href="Scientific-module.html">Package Scientific</a> ::
|
|
<a href="Scientific.Statistics-module.html">Package Statistics</a> ::
|
|
<a href="Scientific.Statistics.Histogram-module.html">Module Histogram</a> ::
|
|
Class Histogram
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<table cellpadding="0" cellspacing="0">
|
|
<!-- hide/show private -->
|
|
<tr><td align="right"><span class="options"
|
|
>[<a href="frames.html" target="_top">frames</a
|
|
>] | <a href="Scientific.Statistics.Histogram.Histogram-class.html"
|
|
target="_top">no frames</a>]</span></td></tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<!-- ==================== CLASS DESCRIPTION ==================== -->
|
|
<h1 class="epydoc">Class Histogram</h1><p class="nomargin-top"></p>
|
|
<dl><dt>Known Subclasses:</dt>
|
|
<dd>
|
|
<ul class="subclass-list">
|
|
<li><a href="Scientific.Statistics.Histogram.WeightedHistogram-class.html">WeightedHistogram</a></li> </ul>
|
|
</dd></dl>
|
|
|
|
<hr />
|
|
<p>Histogram in one variable</p>
|
|
<p>The bin index and the number of points in a bin can be obtained by
|
|
indexing the histogram with the bin number. Application of len() yields
|
|
the number of bins. A histogram thus behaves like a sequence of bin index
|
|
- bin count pairs.</p>
|
|
<p>Here is an example on usage:</p>
|
|
<pre class="py-doctest">
|
|
<span class="py-prompt">>>> </span>nsamples = 1000
|
|
<span class="py-prompt">>>> </span><span class="py-keyword">from</span> numpy <span class="py-keyword">import</span> random
|
|
<span class="py-prompt">>>> </span>data = random.normal(1.0, 0.5, nsamples)
|
|
<span class="py-prompt">>>> </span><span class="py-keyword">import</span> Scientific.Statistics <span class="py-keyword">as</span> S
|
|
<span class="py-prompt">>>> </span>S.mean(data)
|
|
<span class="py-output">0.9607056871982641</span>
|
|
<span class="py-output"></span><span class="py-prompt">>>> </span>S.standardDeviation(data)
|
|
<span class="py-output">0.50251811830486681</span>
|
|
<span class="py-output"></span><span class="py-prompt">>>> </span>S.median(data)
|
|
<span class="py-output">0.94853870756924152</span>
|
|
<span class="py-output"></span><span class="py-prompt">>>> </span>S.skewness(data) <span class="py-comment"># should be 0</span>
|
|
<span class="py-output">0.038940041870334556</span>
|
|
<span class="py-output"></span><span class="py-prompt">>>> </span>S.kurtosis(data) <span class="py-comment"># should be 3</span>
|
|
<span class="py-output">2.865582791273765</span>
|
|
<span class="py-output"></span><span class="py-prompt">>>> </span>
|
|
<span class="py-prompt">>>> </span><span class="py-keyword">from</span> Scientific.Statistics.Histogram <span class="py-keyword">import</span> Histogram
|
|
<span class="py-prompt">>>> </span>h = Histogram(data, 50) <span class="py-comment"># use 50 bins between min & max samples</span>
|
|
<span class="py-prompt">>>> </span>h.normalizeArea() <span class="py-comment"># make probabilities in histogram</span>
|
|
<span class="py-prompt">>>> </span>h[3] <span class="py-comment"># bin index and frequency in the 4th bin</span>
|
|
<span class="py-output">array([-0.45791018, 0.01553658])</span>
|
|
<span class="py-output"></span><span class="py-prompt">>>> </span>x = h.getBinIndices()
|
|
<span class="py-prompt">>>> </span>y = h.getBinCounts()
|
|
<span class="py-prompt">>>> </span><span class="py-comment"># can plot the y vector against the x vector (see below)</span>
|
|
<span class="py-prompt">>>> </span>
|
|
<span class="py-prompt">>>> </span><span class="py-comment"># add many more samples:</span>
|
|
<span class="py-prompt">>>> </span>nsamples2 = nsamples*100
|
|
<span class="py-prompt">>>> </span>data = random.normal(1.0, 0.5, nsamples2)
|
|
<span class="py-prompt">>>> </span>h.addData(data)
|
|
<span class="py-prompt">>>> </span>h.normalizeArea()
|
|
<span class="py-prompt">>>> </span>x2 = h.getBinIndices()
|
|
<span class="py-prompt">>>> </span>y2 = h.getBinCounts()</pre>
|
|
<pre class="py-doctest">
|
|
<span class="py-prompt">>>> </span>plot (x,y) <span class="py-keyword">and</span> (x2,y2):
|
|
<span class="py-prompt">>>> </span><span class="py-keyword">import</span> Gnuplot
|
|
<span class="py-prompt">>>> </span>g = Gnuplot.Gnuplot(persist=1)
|
|
<span class="py-prompt">>>> </span>g.xlabel(<span class="py-string">'sample value'</span>); g.ylabel(<span class="py-string">'probability'</span>)
|
|
<span class="py-prompt">>>> </span>d1 = Gnuplot.Data(x, y, with=<span class="py-string">'lines'</span>,
|
|
<span class="py-more">... </span> title=<span class="py-string">'%d samples'</span> % nsamples)
|
|
<span class="py-prompt">>>> </span>d2 = Gnuplot.Data(x2, y2, with=<span class="py-string">'lines'</span>,
|
|
<span class="py-more">... </span> title=<span class="py-string">'%d samples'</span> % nsamples2)
|
|
<span class="py-prompt">>>> </span>g.plot(d1,d2)</pre>
|
|
|
|
<!-- ==================== INSTANCE METHODS ==================== -->
|
|
<a name="section-InstanceMethods"></a>
|
|
<table class="summary" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="table-header">
|
|
<td align="left" colspan="2" class="table-header">
|
|
<span class="table-header">Instance Methods</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a href="Scientific.Statistics.Histogram.Histogram-class.html#__getitem__" class="summary-sig-name">__getitem__</a>(<span class="summary-sig-arg">self</span>,
|
|
<span class="summary-sig-arg">index</span>)</span><br />
|
|
Returns:
|
|
an array of shape (2,) containing the bin value and the bin count</td>
|
|
<td align="right" valign="top">
|
|
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="__getslice__"></a><span class="summary-sig-name">__getslice__</span>(<span class="summary-sig-arg">self</span>,
|
|
<span class="summary-sig-arg">first</span>,
|
|
<span class="summary-sig-arg">last</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a href="Scientific.Statistics.Histogram.Histogram-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
|
|
<span class="summary-sig-arg">data</span>,
|
|
<span class="summary-sig-arg">nbins</span>,
|
|
<span class="summary-sig-arg">range</span>=<span class="summary-sig-default">None</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"><code>int</code></span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a href="Scientific.Statistics.Histogram.Histogram-class.html#__len__" class="summary-sig-name">__len__</a>(<span class="summary-sig-arg">self</span>)</span><br />
|
|
Returns:
|
|
the number of bins</td>
|
|
<td align="right" valign="top">
|
|
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a href="Scientific.Statistics.Histogram.Histogram-class.html#addData" class="summary-sig-name">addData</a>(<span class="summary-sig-arg">self</span>,
|
|
<span class="summary-sig-arg">data</span>)</span><br />
|
|
Add values to the originally supplied data sequence.</td>
|
|
<td align="right" valign="top">
|
|
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="getBinCounts"></a><span class="summary-sig-name">getBinCounts</span>(<span class="summary-sig-arg">self</span>)</span><br />
|
|
Return an array of all the bin counts.</td>
|
|
<td align="right" valign="top">
|
|
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="getBinIndices"></a><span class="summary-sig-name">getBinIndices</span>(<span class="summary-sig-arg">self</span>)</span><br />
|
|
Return an array of all the bin indices.</td>
|
|
<td align="right" valign="top">
|
|
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a href="Scientific.Statistics.Histogram.Histogram-class.html#normalize" class="summary-sig-name">normalize</a>(<span class="summary-sig-arg">self</span>,
|
|
<span class="summary-sig-arg">norm</span>=<span class="summary-sig-default">1.0</span>)</span><br />
|
|
Scale all bin counts by the same factor</td>
|
|
<td align="right" valign="top">
|
|
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a href="Scientific.Statistics.Histogram.Histogram-class.html#normalizeArea" class="summary-sig-name">normalizeArea</a>(<span class="summary-sig-arg">self</span>,
|
|
<span class="summary-sig-arg">norm</span>=<span class="summary-sig-default">1.0</span>)</span><br />
|
|
Scale all bin counts by the same factor</td>
|
|
<td align="right" valign="top">
|
|
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<!-- ==================== METHOD DETAILS ==================== -->
|
|
<a name="section-MethodDetails"></a>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="table-header">
|
|
<td align="left" colspan="2" class="table-header">
|
|
<span class="table-header">Method Details</span></td>
|
|
</tr>
|
|
</table>
|
|
<a name="__getitem__"></a>
|
|
<div>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr><td>
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr valign="top"><td>
|
|
<h3 class="epydoc"><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-arg">self</span>,
|
|
<span class="sig-arg">index</span>)</span>
|
|
<br /><em class="fname">(Indexing operator)</em>
|
|
</h3>
|
|
</td><td align="right" valign="top"
|
|
>
|
|
</td>
|
|
</tr></table>
|
|
|
|
|
|
<dl class="fields">
|
|
<dt>Parameters:</dt>
|
|
<dd><ul class="nomargin-top">
|
|
<li><strong class="pname"><code>index</code></strong> (<code>int</code>) - a bin index</li>
|
|
</ul></dd>
|
|
<dt>Returns:</dt>
|
|
<dd>an array of shape (2,) containing the bin value and the bin count</dd>
|
|
</dl>
|
|
</td></tr></table>
|
|
</div>
|
|
<a name="__init__"></a>
|
|
<div>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr><td>
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr valign="top"><td>
|
|
<h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
|
|
<span class="sig-arg">data</span>,
|
|
<span class="sig-arg">nbins</span>,
|
|
<span class="sig-arg">range</span>=<span class="sig-default">None</span>)</span>
|
|
<br /><em class="fname">(Constructor)</em>
|
|
</h3>
|
|
</td><td align="right" valign="top"
|
|
>
|
|
</td>
|
|
</tr></table>
|
|
|
|
|
|
<dl class="fields">
|
|
<dt>Parameters:</dt>
|
|
<dd><ul class="nomargin-top">
|
|
<li><strong class="pname"><code>data</code></strong> (<code>Numeric.array</code> of <code>float</code> or
|
|
<code>int</code>) - a sequence of data points</li>
|
|
<li><strong class="pname"><code>nbins</code></strong> (<code>int</code>) - the number of bins into which the data is to be sorted</li>
|
|
<li><strong class="pname"><code>range</code></strong> (<code>tuple</code> or <code>NoneType</code>) - a tuple of two values, specifying the lower and the upper end of
|
|
the interval spanned by the bins. Any data point outside this
|
|
interval will be ignored. If no range is given, the smallest and
|
|
largest data values are used to define the interval.</li>
|
|
</ul></dd>
|
|
</dl>
|
|
</td></tr></table>
|
|
</div>
|
|
<a name="__len__"></a>
|
|
<div>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr><td>
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr valign="top"><td>
|
|
<h3 class="epydoc"><span class="sig"><span class="sig-name">__len__</span>(<span class="sig-arg">self</span>)</span>
|
|
<br /><em class="fname">(Length operator)</em>
|
|
</h3>
|
|
</td><td align="right" valign="top"
|
|
>
|
|
</td>
|
|
</tr></table>
|
|
|
|
|
|
<dl class="fields">
|
|
<dt>Returns: <code>int</code></dt>
|
|
<dd>the number of bins</dd>
|
|
</dl>
|
|
</td></tr></table>
|
|
</div>
|
|
<a name="addData"></a>
|
|
<div>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr><td>
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr valign="top"><td>
|
|
<h3 class="epydoc"><span class="sig"><span class="sig-name">addData</span>(<span class="sig-arg">self</span>,
|
|
<span class="sig-arg">data</span>)</span>
|
|
</h3>
|
|
</td><td align="right" valign="top"
|
|
>
|
|
</td>
|
|
</tr></table>
|
|
|
|
<p>Add values to the originally supplied data sequence. Use this method
|
|
to feed long data sequences in multiple parts to avoid memory
|
|
shortages.</p>
|
|
<dl class="fields">
|
|
<dt>Parameters:</dt>
|
|
<dd><ul class="nomargin-top">
|
|
<li><strong class="pname"><code>data</code></strong> (<code>Numeric.array</code>) - a sequence of data points</li>
|
|
</ul></dd>
|
|
</dl>
|
|
<div class="fields"> <p><strong>Note:</strong>
|
|
this does not affect the default range of the histogram, which is
|
|
fixed when the histogram is created.
|
|
</p>
|
|
</div></td></tr></table>
|
|
</div>
|
|
<a name="normalize"></a>
|
|
<div>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr><td>
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr valign="top"><td>
|
|
<h3 class="epydoc"><span class="sig"><span class="sig-name">normalize</span>(<span class="sig-arg">self</span>,
|
|
<span class="sig-arg">norm</span>=<span class="sig-default">1.0</span>)</span>
|
|
</h3>
|
|
</td><td align="right" valign="top"
|
|
>
|
|
</td>
|
|
</tr></table>
|
|
|
|
<p>Scale all bin counts by the same factor</p>
|
|
<dl class="fields">
|
|
<dt>Parameters:</dt>
|
|
<dd><ul class="nomargin-top">
|
|
<li><strong class="pname"><code>norm</code></strong> (<code>float</code> or <code>int</code>) - the sum of all bin counts after the rescaling</li>
|
|
</ul></dd>
|
|
</dl>
|
|
</td></tr></table>
|
|
</div>
|
|
<a name="normalizeArea"></a>
|
|
<div>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr><td>
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr valign="top"><td>
|
|
<h3 class="epydoc"><span class="sig"><span class="sig-name">normalizeArea</span>(<span class="sig-arg">self</span>,
|
|
<span class="sig-arg">norm</span>=<span class="sig-default">1.0</span>)</span>
|
|
</h3>
|
|
</td><td align="right" valign="top"
|
|
>
|
|
</td>
|
|
</tr></table>
|
|
|
|
<p>Scale all bin counts by the same factor</p>
|
|
<dl class="fields">
|
|
<dt>Parameters:</dt>
|
|
<dd><ul class="nomargin-top">
|
|
<li><strong class="pname"><code>norm</code></strong> (<code>float</code> or <code>int</code>) - the area under the histogram after the rescaling</li>
|
|
</ul></dd>
|
|
</dl>
|
|
</td></tr></table>
|
|
</div>
|
|
<br />
|
|
<!-- ==================== NAVIGATION BAR ==================== -->
|
|
<table class="navbar" border="0" width="100%" cellpadding="0"
|
|
bgcolor="#a0c0ff" cellspacing="0">
|
|
<tr valign="middle">
|
|
<!-- Home link -->
|
|
<th> <a
|
|
href="Scientific-module.html">Home</a> </th>
|
|
|
|
<!-- Tree link -->
|
|
<th> <a
|
|
href="module-tree.html">Trees</a> </th>
|
|
|
|
<!-- Index link -->
|
|
<th> <a
|
|
href="identifier-index.html">Indices</a> </th>
|
|
|
|
<!-- Help link -->
|
|
<th> <a
|
|
href="help.html">Help</a> </th>
|
|
|
|
<!-- Project homepage -->
|
|
<th class="navbar" align="right" width="100%">
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><th class="navbar" align="center"
|
|
><a class="navbar" target="_top" href="http://dirac.cnrs-orleans.fr/ScientificPython/">Scientific Python</a></th>
|
|
</tr></table></th>
|
|
</tr>
|
|
</table>
|
|
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
|
|
<tr>
|
|
<td align="left" class="footer">
|
|
Generated by Epydoc 3.0 on Tue Oct 28 14:16:07 2008
|
|
</td>
|
|
<td align="right" class="footer">
|
|
<a target="mainFrame" href="http://epydoc.sourceforge.net"
|
|
>http://epydoc.sourceforge.net</a>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<script type="text/javascript">
|
|
<!--
|
|
// Private objects are initially displayed (because if
|
|
// javascript is turned off then we want them to be
|
|
// visible); but by default, we want to hide them. So hide
|
|
// them unless we have a cookie that says to show them.
|
|
checkCookie();
|
|
// -->
|
|
</script>
|
|
</body>
|
|
</html>
|