Try it now

Latest version 8.1.20 (August 2023)

Try it for free with our fully functional 30-day trial.

nuget Get from
Nuget

QuickStart Samples

Histograms QuickStart Sample (IronPython)

Illustrates how to create histograms using the Histogram class in the Extreme.DataAnalysis namespace in IronPython.

View this sample in: C# Visual Basic F#

```Pyton
import numerics

from System import Array

from Extreme.Mathematics import *
from Extreme.Statistics import *

#/ Illustrates the use of the Histogram class. 

# Histograms are used to summarize the distribution of data.
# This QuickStart sample creates a histogram from data 
# in a variety of ways.

# We use the test scores of students on a hypothetical national test.
# First we create a NumericalVariable that holds the test scores.
group1Data = Vector([ \
	62, 77, 61, 94, 75, 82, 86, 83, 64, 84, \
    68, 82, 72, 71, 85, 66, 61, 79, 81, 73 ])
group1Results = NumericalVariable("Class 1", group1Data)

# We can create a histogram with evenly spaced bins by specifying the lower bound, # the upper bound, and the number of bins:
histogram1 = Histogram(50, 100, 5)
			
# We can also provide the bounds explicitly:
bounds = Array[float]([50, 62, 74, 88, 100])
histogram2 = Histogram(bounds)

# Or we can first create a NumericalScale object
scale = NumericalScale(50, 100, 5)
histogram3 = Histogram(scale)

# To tally the results, we simply call the Tabulate method.
# The data can be supplied as a NumericalVariable:
histogram1.Tabulate(group1Results)
# or simply as a Double array:
histogram2.Tabulate(group1Data)

# You can add multiple data sets to the same histogram:
histogram2.Tabulate(Vector([74, 68, 89 ]))
# Or you can add individual data points using the Increment method.
# This will increment the count of the bin that contains 
# the specified value:
histogram2.Increment(83)
histogram2.Increment(78)

			
# The Clear method clears all the data:
histogram2.Clear()


# The Bins property returns a collection of HistogramBin objects:
bins = histogram1.Bins
# It has a Count property that returns the total number of bins:
print "# bins:", bins.Count
# and an indexer property that returns a HistogramBin object:
bin = bins[2]
# HistogramBin objects have a lower bound, an upper bound, and a value:
print "Bin 2 has lower bound", bin.LowerBound
print "Bin 2 has upper bound", bin.UpperBound
print "Bin 2 has value", bin.Value

# The histogram's FindBin method returns the Histogram bin
# that contains a specified value:
bin = histogram1.FindBin(83)
print "83 is in bin", bin.Index

# You can use the Bins property to iterate through all the bins
# in a foreach loop:
for bin2 in histogram1.Bins:
	print "Bin {0}: {1}".format(bin2.Index, bin2.Value)

# The histogram's GetTotals method returns a double array 
# that contains the total for each bin in the histogram:
totals = histogram1.GetTotals()
```