Extreme Optimization >
QuickStart Samples >
Histograms QuickStart Sample (VB.NET)
Extreme Optimization QuickStart Samples
Histograms QuickStart Sample (VB.NET)
Illustrates how to
use the Histogram class (Extreme.Statistics namespace) in Visual Basic.
C# code Back to
QuickStart Samples
Imports System.Data
Imports Extreme.Statistics
Namespace Extreme.Mathematics.QuickStart.VB
' Illustrates the use of the Histogram class.
Module Histograms
Sub Main()
' 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.
Dim group1Data As Double() = New Double() _
{62, 77, 61, 94, 75, 82, 86, 83, 64, 84, _
68, 82, 72, 71, 85, 66, 61, 79, 81, 73}
Dim group1Results As NumericalVariable = _
New 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:
Dim histogram1 As Histogram = New Histogram(50, 100, 5)
' We can also provide the bounds explicitly:
Dim bounds As Double() = New Double() {50, 62, 74, 88, 100}
Dim histogram2 As Histogram = New Histogram(bounds)
' Or we can first create a NumericalScale object
Dim scale As NumericalScale = New NumericalScale(50, 100, 5)
Dim histogram3 As Histogram = New 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(New Double() {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:
Dim bins As HistogramBinCollection = histogram1.Bins
' It has a Count property that returns the total number of bins:
Console.WriteLine("# bins: {0}", bins.Count)
' and an indexer property that returns a HistogramBin object:
Dim bin As HistogramBin = bins(2)
' HistogramBin objects have a lower bound, an upper bound,
' and a value:
Console.WriteLine("Bin 2 has lower bound {0}.", bin.LowerBound)
Console.WriteLine("Bin 2 has upper bound {0}.", bin.UpperBound)
Console.WriteLine("Bin 2 has value bound {0}.", bin.Value)
' The histogram's Find method returns the Histogram bin
' that contains a specified value:
bin = histogram1.Find(83)
Console.WriteLine("83 is in bin #{0}", bin.Index)
' You can use the Bins property to iterate through all the bins
' in a foreach loop:
For Each bin2 As HistogramBin In histogram1.Bins
Console.WriteLine("Bin {0}: {1}", bin2.Index, bin2.Value)
Next
' The histogram's GetTotals method returns a double array
' that contains the total for each bin in the histogram:
Dim totals As Double() = histogram1.GetTotals()
Console.WriteLine("Press Enter key to continue.")
Console.ReadLine()
End Sub
End Module
End Namespace
Copyright 2004-2007,
Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M
Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, and Visual
Studio.NET are registered trademarks of Microsoft Corporation