# HG changeset patch # User HackBot # Date 1453582777 0 # Node ID 7b90e3fd7e09b410522fc4d32c55134ec1c32432 # Parent df7545cff68204a45bbc6bf1be6c412d0c7734b1 <\oren\> fetch http://www.orenwatson.be/grph.c diff -r df7545cff682 -r 7b90e3fd7e09 grph.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/grph.c Sat Jan 23 20:59:37 2016 +0000 @@ -0,0 +1,78 @@ +#include "stdio.h" +#include "string.h" +#include "stdlib.h" +#include "math.h" +char *vgraph[] = {" ","▁","▂","▃","▄","▅","▆","▇","█"}; +char *hgraph[] = {"█","▉","▊","▋","▌","▍","▎","▏"," "}; +int main(int argc,char**argv){ + int h = 3; + int w = 80; + int color = 0,ori = 0,zebra=0,label=0; + if(argc >= 2&&argv[1][0]=='-'){ + if(strchr(argv[1],'c'))color = 1; + if(strchr(argv[1],'z'))zebra = 1; + if(strchr(argv[1],'h'))ori = 1; + if(strchr(argv[1],'l'))label = 1; + argv++;argc--; + } + if(ori)h=10; + if(argc >= 2)h = strtol(argv[1],0,0); + if(argc >= 3)w = strtol(argv[2],0,0); + float *x=malloc(sizeof(float)*w); + int i,c,j; + float M = -HUGE_VALF; + float m = HUGE_VALF; + for(i=0;iM)M=x[i]; + if(x[i]= 4)sscanf(argv[3],"%f",&m); + if(argc >= 5)sscanf(argv[4],"%f",&M); + w = i; + float l = (M-m)/h; + if(ori == 0){//vertical, default + for(j=h-1;j>=0;j--){ + if(color)fputs("\e[44m",stdout); + for(i=0;il){ + fputs(vgraph[8],stdout); + }else if(r>0){ + fputs(vgraph[(int)(r/l*8+0.5)],stdout); + }else{ + fputs(" ",stdout); + } + } + if(color||zebra)fputs("\e[0m",stdout); + if(label&&j==h-1)printf(" %f",M); + if(label&&j==0)printf(" %f",m); + putchar(10); + } + }else{ + for(i=0;il){ + fputs(hgraph[0],stdout); + }else if(r>0){ + fputs(hgraph[8-(int)(r/l*8+0.5)],stdout); + }else{ + fputs(hgraph[8],stdout); + } + } + if(color||zebra)fputs("\e[0m",stdout); + putchar(10); + } + int n; + if(label){ + printf("%f%n",m,&n); + while(n++