#include #include #include #include void cpghistlog(int npts, float *data, float datamin, float datamax, int nbin, int pgflag) { /** * cpghistlog(npts, data, datamin, datamax, nbin, pgflag) * * Works exactly as for cpghist, except the y-axis is a logarithmic scale. * */ int i,bin; float *num; float maxNum,binSize,x1,x2,y1,y2,older,newer,fraction; float MINCOUNT=-0.2; num = (float *)calloc(nbin,sizeof(float)); cpgbbuf(); // HOW MANY VALUES IN EACH BIN? for(i=0; i=0)&&(bin0) num[i] = log10(num[i]); else num[i] = MINCOUNT; } maxNum = num[0]; for(i=1; imaxNum) maxNum = num[i]; binSize = (datamax - datamin) / (float)nbin; // BOUNDARIES OF PLOT x1 = datamin; x2 = datamax; y1 = MINCOUNT; y2 = ceil(maxNum); // DEFINE ENVIRONMENT IF NECESSARY if(pgflag%2 == 0) cpgenv(x1,x2,y1,y2,0,20); // DRAW HISTOGRAM if(pgflag/2 == 0){ older = 0.; x2 = datamin; cpgmove(datamin,MINCOUNT); for(i=0;i