Actual source code: ex3.c
1: /*$Id: ex3.c,v 1.42 2001/08/07 21:28:44 bsmith Exp $*/
3: static char help[] = "Plots a simple line graph.n";
5: #include petsc.h
7: int main(int argc,char **argv)
8: {
9: PetscDraw draw;
10: PetscDrawLG lg;
11: PetscDrawAxis axis;
12: int n = 20,i,ierr,x = 0,y = 0,width = 300,height = 300,nports = 1;
13: PetscTruth flg;
14: char *xlabel,*ylabel,*toplabel;
15: PetscReal xd,yd;
16: PetscDrawViewPorts *ports;
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: PetscOptionsHasName(PETSC_NULL,"-nolabels",&flg);
25: if (flg) {
26: xlabel = (char *)0; toplabel = (char *)0;
27: }
28: /* PetscDrawOpenX(PETSC_COMM_SELF,0,"Title",x,y,width,height,&draw);*/
29: PetscDrawCreate(PETSC_COMM_SELF,0,"Title",x,y,width,height,&draw);
30: PetscDrawSetFromOptions(draw);
31:
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: PetscDrawFlush(draw);
48: PetscSleep(2);
50: PetscDrawViewPortsDestroy(ports);
51: PetscDrawLGDestroy(lg);
52: PetscDrawDestroy(draw);
53: PetscFinalize();
54: return 0;
55: }
56: