Actual source code: ex12.c
2: static char help[] = "Makes a simple bar graph.\n";
4: #include <petscsys.h>
5: #include <petscdraw.h>
7: int main(int argc,char **argv)
8: {
9: PetscDraw draw;
10: PetscDrawBar bar;
11: PetscDrawAxis axis;
12: int color = PETSC_DRAW_ROTATE;
13: const char *xlabel,*ylabel,*toplabel;
14: const PetscReal values[] = {.3, .5, .05, .11};
15: const char *const labels[] = {"A","B","C","D",NULL};
16: PetscReal limits[2] = {0,0.55}; PetscInt nlimits = 2;
17: PetscBool nolabels,setlimits;
19: xlabel = "X-axis Label"; toplabel = "Top Label"; ylabel = "Y-axis Label";
21: PetscInitialize(&argc,&argv,NULL,help);
22: PetscOptionsHasName(NULL,NULL,"-nolabels",&nolabels);
23: if (nolabels) { xlabel = NULL; ylabel = NULL; toplabel = NULL; }
24: PetscOptionsGetRealArray(NULL,NULL,"-limits",limits,&nlimits,&setlimits);
26: PetscDrawCreate(PETSC_COMM_WORLD,NULL,"Title",PETSC_DECIDE,PETSC_DECIDE,400,300,&draw);
27: PetscDrawSetFromOptions(draw);
28: PetscDrawBarCreate(draw,&bar);
30: PetscDrawBarGetAxis(bar,&axis);
31: PetscDrawAxisSetColors(axis,PETSC_DRAW_BLACK,PETSC_DRAW_RED,PETSC_DRAW_BLUE);
32: PetscDrawAxisSetLabels(axis,toplabel,xlabel,ylabel);
33: PetscDrawBarSetColor(bar,color);
34: PetscDrawBarSetFromOptions(bar);
36: if (setlimits) PetscDrawBarSetLimits(bar,limits[0],limits[1]);
37: PetscDrawBarSetData(bar,4,values,labels);
38: PetscDrawBarDraw(bar);
39: PetscDrawBarSave(bar);
41: PetscDrawBarDestroy(&bar);
42: PetscDrawDestroy(&draw);
43: PetscFinalize();
44: return 0;
45: }
47: /*TEST
49: build:
50: requires: x
52: test:
53: output_file: output/ex1_1.out
55: TEST*/