
Kst contains built in routines to generate histograms from data. For this tutorial, we'll look at the histogram of a vector containing normally distributed numbers.
We'll generate this vector using a perl script. Copy the following code into a file called generate_normal.pl:
sub gaussian_rand { # from the Perl Cookbook. (O'Reilly, 1998)
my ($u1, $u2); # uniformly distributed random numbers
my $w; # variance, then a weight
my ($g1, $g2); # gaussian-distributed numbers
do {
$u1 = 2 * rand() - 1;
$u2 = 2 * rand() - 1;
$w = $u1*$u1 + $u2*$u2;
} while ( $w >= 1 );
$w = sqrt( (-2 * log($w)) / $w );
$g2 = $u1 * $w;
$g1 = $u2 * $w;
# return both if wanted, else just one
return wantarray ? ($g1, $g2) : $g1;
}
srand(time() ^($$ + ($$ <<15))) ; # initialize the RNG.
for ($x=0;$x < 10000;$x++) {
print gaussian_rand() . "\n";
}
Now execute the script with the command:
perl generate_normal.pl > normal.dat
This will generate an ASCII file normal.dat containing random numbers with a gaussian distribution centered at 0 with a standard deviation of 1. Import this data into Kst, and plot it as points with INDEX as the x-axis vector (if this gives you trouble, you may want to see the Getting Started section on Importing Data. You should see something which resembles the following:

Now we are ready to generate the histogram itself. Select ->. Select the Data Vector which has just been created from normal.dat. There are several options relating to bin choices. For quick generation of histograms, it is usually easiest to just press the Auto-Bin feature. This will select an optimal bin size and range for the given data.
Click the button to generate the histogram.

Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team