Add files via upload

bulk data dump
This commit is contained in:
Jason Bou-Samra
2024-04-07 19:13:04 +10:00
committed by GitHub
commit 7ab5faae04
7 changed files with 20212 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
## build Histogram
## jbs - paragonsoft
## 06 Apr 2024 15:55
all: histo
histo: histogram.c
cc -o histo histogram.c -lm
clean:
rm histo
+29
View File
@@ -0,0 +1,29 @@
# Histogram
what is a histogram?
The visual representation that charts the frequency distribution of variables in a data set.
A frequency distribution shows the regularity of an occurrence of a value in a set of data.
Often confused with a bar chart, although there are certain defining characteristics of differentiation.
* The x-axis consists of equal width bars without space in between, known as bins or buckets that represent a range of classes.
* x axis is the class interval and is labelled with a number rather than a description.
* The y axis represents the frequency of occurrence of a value.
* Bar graphs represents data that is discrete or categorical in nature
Uses
In statistics to show the frequency of a specific value within a certain range.
Used to analyse large amounts of data easily to detect trends and patterns.
## Change-log:
* 06/04/2023 - Initial release
* 04/04/2023 - Foundation code
## Compilation
type `make` or `cc -o histo histogram.c -lm` on the command line
## Todo
* Need to use SDL2 to plot a graph of the output
## Author(s)
Jason Bou-Samra
+100
View File
@@ -0,0 +1,100 @@
10.000000000000000000 89.000000000000000000
20.000000000000000000 108.000000000000000000
30.000000000000000000 120.000000000000000000
40.000000000000000000 109.000000000000000000
50.000000000000000000 111.000000000000000000
60.000000000000000000 127.000000000000000000
70.000000000000000000 88.000000000000000000
80.000000000000000000 117.000000000000000000
90.000000000000000000 87.000000000000000000
100.000000000000000000 83.000000000000000000
110.000000000000000000 109.000000000000000000
120.000000000000000000 96.000000000000000000
130.000000000000000000 85.000000000000000000
140.000000000000000000 102.000000000000000000
150.000000000000000000 121.000000000000000000
160.000000000000000000 97.000000000000000000
170.000000000000000000 97.000000000000000000
180.000000000000000000 96.000000000000000000
190.000000000000000000 109.000000000000000000
200.000000000000000000 104.000000000000000000
210.000000000000000000 99.000000000000000000
220.000000000000000000 104.000000000000000000
230.000000000000000000 94.000000000000000000
240.000000000000000000 90.000000000000000000
250.000000000000000000 97.000000000000000000
260.000000000000000000 99.000000000000000000
270.000000000000000000 100.000000000000000000
280.000000000000000000 80.000000000000000000
290.000000000000000000 95.000000000000000000
300.000000000000000000 111.000000000000000000
310.000000000000000000 97.000000000000000000
320.000000000000000000 86.000000000000000000
330.000000000000000000 88.000000000000000000
340.000000000000000000 100.000000000000000000
350.000000000000000000 86.000000000000000000
360.000000000000000000 98.000000000000000000
370.000000000000000000 98.000000000000000000
380.000000000000000000 91.000000000000000000
390.000000000000000000 101.000000000000000000
400.000000000000000000 93.000000000000000000
410.000000000000000000 106.000000000000000000
420.000000000000000000 97.000000000000000000
430.000000000000000000 85.000000000000000000
440.000000000000000000 103.000000000000000000
450.000000000000000000 107.000000000000000000
460.000000000000000000 98.000000000000000000
470.000000000000000000 125.000000000000000000
480.000000000000000000 96.000000000000000000
490.000000000000000000 105.000000000000000000
500.000000000000000000 98.000000000000000000
510.000000000000000000 100.000000000000000000
520.000000000000000000 114.000000000000000000
530.000000000000000000 82.000000000000000000
540.000000000000000000 99.000000000000000000
550.000000000000000000 93.000000000000000000
560.000000000000000000 105.000000000000000000
570.000000000000000000 107.000000000000000000
580.000000000000000000 83.000000000000000000
590.000000000000000000 119.000000000000000000
600.000000000000000000 81.000000000000000000
610.000000000000000000 102.000000000000000000
620.000000000000000000 103.000000000000000000
630.000000000000000000 110.000000000000000000
640.000000000000000000 100.000000000000000000
650.000000000000000000 89.000000000000000000
660.000000000000000000 77.000000000000000000
670.000000000000000000 96.000000000000000000
680.000000000000000000 115.000000000000000000
690.000000000000000000 104.000000000000000000
700.000000000000000000 104.000000000000000000
710.000000000000000000 107.000000000000000000
720.000000000000000000 99.000000000000000000
730.000000000000000000 99.000000000000000000
740.000000000000000000 96.000000000000000000
750.000000000000000000 100.000000000000000000
760.000000000000000000 85.000000000000000000
770.000000000000000000 106.000000000000000000
780.000000000000000000 111.000000000000000000
790.000000000000000000 95.000000000000000000
800.000000000000000000 97.000000000000000000
810.000000000000000000 105.000000000000000000
820.000000000000000000 102.000000000000000000
830.000000000000000000 112.000000000000000000
840.000000000000000000 104.000000000000000000
850.000000000000000000 121.000000000000000000
860.000000000000000000 111.000000000000000000
870.000000000000000000 94.000000000000000000
880.000000000000000000 88.000000000000000000
890.000000000000000000 110.000000000000000000
900.000000000000000000 125.000000000000000000
910.000000000000000000 105.000000000000000000
920.000000000000000000 84.000000000000000000
930.000000000000000000 93.000000000000000000
940.000000000000000000 94.000000000000000000
950.000000000000000000 101.000000000000000000
960.000000000000000000 78.000000000000000000
970.000000000000000000 107.000000000000000000
980.000000000000000000 98.000000000000000000
990.000000000000000000 113.000000000000000000
1000.000000000000000000 91.000000000000000000
+10000
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+73
View File
@@ -0,0 +1,73 @@
/************************************
** Display data file as Histogram **
** Jason Bou-Samra 06/04/2024 **
** Paragon Software **
************************************/
#include <stdio.h>
#include <math.h>
int main()
{
int N = 10000; // number of samples (data points)
int nbin = round(sqrt(N)); // number of bins ~ sqrt(N) (or nearest integer value if not perfect square)
float hist[nbin]; // histogram array
float x[N]; // array of data points
float xmax, xmin; // minimum & maximum x data point values
float summ; // used to normalise data
float dx; // dx = (xmax - xmin) / nbin (delta value)
int i,j; // index variables
FILE *fptr_r, *fptr_w; // read and write file pointers
fptr_r = fopen("uniform.dat", "r"); // data points (read in)
fptr_w = fopen("dist3.dat", "w"); // the histogram output file (write out)
if(fptr_r == NULL || fptr_w == NULL) {
perror("Error opening file");
return(-1);} // handle fopen error, if any
for (i = 0; i < N+1; i++)
{
fscanf(fptr_r, "%G", &x[i]);
}
xmin = x[1]; // search for xmin
for (i = 1 ; i < N+1 ; i++)
{
if (x[i] < xmin) {
xmin = x[i];
}
}
xmax = x[1]; // search for xmax
for (i = 1 ; i < N+1 ; i++)
{
if (x[i] > xmax) {
xmax = x[i];
}
}
dx = (xmax - xmin) / (float)(nbin); // calculate dx
for (j = 0 ; j < nbin+1 ; j++) // compute histogram
{
hist[j] = 0.0f;
for (i = 0 ; i < N+1 ; i++)
{
if ((x[i] >= (xmin + (j - 1) * dx) && x[i] < xmin + j * dx))
hist[j] = hist[j] + 1.0f;
}
}
//summ = 0.0f; // normalize
//for (i = 1 ; i < nbin ; i++) summ = summ + hist[i];
//for (i = 1 ; i < nbin ; i++) hist[i] = hist[i] / summ;
for (i = 1; i < nbin+1; i++)
{
fprintf(fptr_w, " %3.18f %3.18f\n", xmin+i*dx, hist[i]);
}
return 0;
}
+10000
View File
File diff suppressed because it is too large Load Diff