Actual source code: ex9.c

  1: /*$Id: ex9.c,v 1.15 2001/08/07 21:28:44 bsmith Exp $*/

  3: static char help[] = "Makes a simple histogram.n";

 5:  #include petsc.h

  7: int main(int argc,char **argv)
  8: {
  9:   PetscDraw       draw;
 10:   PetscDrawHG     hist;
 11:   PetscDrawAxis   axis;
 12:   int             n = 20,i,ierr,x = 0,y = 0,width = 300,height = 300,bins = 8;
 13:   int             color = PETSC_DRAW_GREEN;
 14:   char            *xlabel,*ylabel,*toplabel;
 15:   PetscReal       xd;
 16:   PetscTruth      flg;

 18:   xlabel = "X-axis Label";toplabel = "Top Label";ylabel = "Y-axis Label";

 20:   PetscInitialize(&argc,&argv,(char*)0,help);
 21:   PetscOptionsGetInt(PETSC_NULL,"-width",&width,PETSC_NULL);
 22:   PetscOptionsGetInt(PETSC_NULL,"-height",&height,PETSC_NULL);
 23:   PetscOptionsGetInt(PETSC_NULL,"-n",&n,PETSC_NULL);
 24:   PetscOptionsGetInt(PETSC_NULL,"-bins",&bins,PETSC_NULL);
 25:   PetscOptionsGetInt(PETSC_NULL,"-color",&color,PETSC_NULL);
 26:   PetscOptionsHasName(PETSC_NULL,"-nolabels",&flg);
 27:   if (flg) {
 28:     xlabel = (char *)0; toplabel = (char *)0;
 29:   }
 30:   /* PetscDrawOpenX(PETSC_COMM_SELF,0,"Title",x,y,width,height,&draw);*/
 31:   PetscDrawCreate(PETSC_COMM_SELF,0,"Title",x,y,width,height,&draw);
 32:   PetscDrawSetType(draw,PETSC_DRAW_X);
 33:   PetscDrawHGCreate(draw,bins,&hist);
 34:   PetscDrawHGGetAxis(hist,&axis);
 35:   PetscDrawAxisSetColors(axis,PETSC_DRAW_BLACK,PETSC_DRAW_RED,PETSC_DRAW_BLUE);
 36:   PetscDrawAxisSetLabels(axis,toplabel,xlabel,ylabel);

 38:   for (i=0; i<n ; i++) {
 39:     xd = (PetscReal)(i - 5);
 40:     PetscDrawHGAddValue(hist,xd*xd);
 41:   }
 42:   PetscDrawHGSetColor(hist,color);
 43:   PetscDrawHGDraw(hist);
 44:   PetscDrawFlush(draw);

 46:   PetscDrawHGDestroy(hist);
 47:   PetscDrawDestroy(draw);
 48:   PetscFinalize();
 49:   return 0;
 50: }
 51: