Source code for openalea.stat_tool.histogram

#!/usr/bin/env python
#-*- coding: utf-8 -*-
"""Histogram module

.. topic:: histogram.py summary

    A module dedicated to Histogram and DiscreteDistribution

    :Code status: mature
    :Documentation status: to be completed
    :Author: Thomas Cokelaer <Thomas.Cokelaer@sophia.inria.fr>

    :Revision: $Id$
"""
__version__ = "$Id$"

#import sys
#import os
#sys.path.append(os.path.abspath("."))

from . import interface

from openalea.stat_tool._stat_tool import _DiscreteDistributionData

# Extend _DistributionData class dynamically
interface.extend_class(_DiscreteDistributionData, interface.StatInterface)

__all__ = ["_DiscreteDistributionData",
           "Histogram",
           ]


[docs] def Histogram(*args): """Construction of a frequency distribution from an object of type list(int) or from an ASCII file. In the file syntax, the frequencies *fi* for each possible value *i* are given in two columns. In the case of an argument of type (list(int)), it is simply assumed that each array element represents one data item. :param integer list: a list of integer values :param string filename: a valid filename in the proper format (see syntax part) :Returns: If the construction succeeds, an object of type `_DiscreteDistributionData` is returned. :Usage: .. doctest:: :options: +SKIP >>> Histogram(list) >>> Histogram(filename) :Examples: .. plot:: :width: 50% :include-source: from openalea.stat_tool import * from numpy.random import randint h = Histogram(randint(10, size=10000).tolist()) h.plot() .. note:: works for integer values only. .. seealso:: :func:`~openalea.stat_tool.output.Save`, :func:`~openalea.stat_tool.cluster.Cluster`, :func:`~openalea.stat_tool.data_transform.Merge`, :func:`~openalea.stat_tool.data_transform.Shift`, :func:`~openalea.stat_tool.cluster.Transcode`, :func:`~openalea.stat_tool.data_transform.ValueSelect`, :func:`~openalea.stat_tool.comparison.Compare`, :func:`~openalea.stat_tool.estimate.Estimate` """ ret = None # Histogram(filename) if len(args)==1 and isinstance(args[0], str): ret = _DiscreteDistributionData(args[0]) # Histogram([1,2,3]) elif len(args)==1 and isinstance(args[0], list): ret = _DiscreteDistributionData(args[0]) # Histogram(1,2,3) else: ret = _DiscreteDistributionData(list(args)) return ret