Actual source code: ex3.c
2: static char help[] = "Plots a simple line graph.\n";
4: #include petscsys.h
8: int main(int argc,char **argv)
9: {
10: PetscDraw draw;
11: PetscDrawLG lg;
12: PetscDrawAxis axis;
13: PetscInt n = 20,i,x = 0,y = 0,width = 300,height = 300,nports = 1;
14: PetscTruth flg;
15: const char *xlabel,*ylabel,*toplabel;
16: PetscReal xd,yd;
17: PetscDrawViewPorts *ports;
18: PetscErrorCode ierr;
20: xlabel = "X-axis Label";toplabel = "Top Label";ylabel = "Y-axis Label";
22: PetscInitialize(&argc,&argv,(char*)0,help);
23: PetscOptionsGetInt(PETSC_NULL,"-width",&width,PETSC_NULL);
24: PetscOptionsGetInt(PETSC_NULL,"-height",&height,PETSC_NULL);
25: PetscOptionsGetInt(PETSC_NULL,"-n",&n,PETSC_NULL);
26: PetscOptionsHasName(PETSC_NULL,"-nolabels",&flg);
27: if (flg) {
28: xlabel = (char *)0; toplabel = (char *)0;
29: }
30: PetscDrawCreate(PETSC_COMM_SELF,0,"Title",x,y,width,height,&draw);
31: PetscDrawSetFromOptions(draw);
32: PetscOptionsGetInt(PETSC_NULL,"-nports",&nports,PETSC_NULL);
33: PetscDrawViewPortsCreate(draw,nports,&ports);
34: PetscDrawViewPortsSet(ports,0);
36: PetscDrawLGCreate(draw,1,&lg);
37: PetscDrawLGGetAxis(lg,&axis);
38: PetscDrawAxisSetColors(axis,PETSC_DRAW_BLACK,PETSC_DRAW_RED,PETSC_DRAW_BLUE);
39: PetscDrawAxisSetLabels(axis,toplabel,xlabel,ylabel);
41: for (i=0; i<n ; i++) {
42: xd = (PetscReal)(i - 5); yd = xd*xd;
43: PetscDrawLGAddPoint(lg,&xd,&yd);
44: }
45: PetscDrawLGIndicateDataPoints(lg);
46: PetscDrawLGDraw(lg);
47: PetscDrawString(draw,-3.,150.0,PETSC_DRAW_BLUE,"A legend");
48: PetscDrawFlush(draw);
49: PetscSleep(2);
51: PetscDrawViewPortsDestroy(ports);
52: PetscDrawLGDestroy(lg);
53: PetscDrawDestroy(draw);
54: PetscFinalize();
55: return 0;
56: }
57: