home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d2xx
/
d222
/
plplot.lha
/
Plplot
/
src
/
source.zoo
/
plhist.c
< prev
next >
Wrap
C/C++ Source or Header
|
1989-05-15
|
1KB
|
46 lines
/* Draws a histogram of n values of a variable in array data(1..n) */
/* in the range datmin to datmax using nbin bins. If "oldwin" is */
/* true, the histogram is plotted in the current window. If not, */
/* the routine calls "plenv" to set up the graphics environment. */
#include "plplot.h"
#include <math.h>
void plhist(n,data,datmin,datmax,nbin,oldwin)
int n, nbin;
int oldwin;
float data[], datmin, datmax;
{
int i, bin, level;
float x[201], y[201], dx, ymax;
glev(&level);
if (level<1) fatal("Please call PLSTAR before PLHIST.");
if (level<3 && oldwin)
fatal("Please set up window before calling PLHIST.");
if (nbin < 1 || nbin > 200)
fatal("Cannot have <1 or >200 bins in PLHIST.");
if (datmin >= datmax)
fatal("Data range invalid in PLHIST.");
dx = (datmax-datmin) / nbin;
for (i=0; i<=nbin; i++) {
x[i] = datmin + i*dx;
y[i] = 0.0;
}
for (i=0; i<n; i++) {
bin = (data[i] - datmin)/dx;
if (bin >= 0 && bin < nbin) y[bin]++;
}
if (!oldwin) {
ymax = 0.0;
for (i=0; i<nbin; i++) ymax = max(ymax,y[i]);
plenv(datmin,datmax,0.0,1.1*ymax,0,0);
}
plbin(nbin+1,x,y,0);
}