This is example01.c in view mode; [Download] [Up]
/* Demonstration program for PLPLOT: */ /* Plots three simple functions, each function occupies a separate page */ #include <stdio.h> #include <math.h> static FLOAT xs[6] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}; static FLOAT ys[6] = {1.0, 4.0, 9.0, 16.0, 25.0, 36.0}; main() { /* Declare these static to reduce required stack size */ static FLOAT x[101], y[101]; int space0 = 0, mark0 = 0, space1 = 1500, mark1 =1500; int i; /* Ask user to specify the output device */ plstar(1,1); /* Set up the viewport and window using PLENV. The range in X is */ /* 0.0 to 6.0, and the range in Y is 0.0 to 30.0. The axes are */ /* scaled separately (just = 0), and we just draw a labelled */ /* box (axis = 0). */ plenv(0.0,6.0,0.0,30.0,0,0); plcol(2); pllab("(x)","(y)","#frPLPLOT Example 1 - y=x#u2"); /* Plot the data points */ plcol(3); plpoin(6,xs,ys,9); for (i=0; i<60; i++) { x[i]=0.1*(i+1); y[i]= pow(x[i],2.); } /* Draw the line through the data */ plcol(4); plline(60,x,y); pleop(); /* end page */ /*===============================================================*/ /* Set up the viewport and window using PLENV. The range in X is -2.0 to 10.0, and the range in Y is -0.4 to 2.0. The axes are scaled separately (just = 0), and we draw a box with axes (axis = 1). */ plcol(1); plenv(-2.0,10.0,-0.4,1.2,0,1); plcol(2); pllab("(x)","sin(x)/x","#frPLPLOT Example 1 - Sinc Function"); /* Fill up the arrays */ for (i=0; i<100; i++) { x[i] = (i-19.0)/6.0; y[i] = 1.0; if (x[i] != 0.0) y[i] = sin(x[i])/x[i]; } /* Draw the line */ plcol(3); plline(100,x,y); pleop(); /* end page */ /*===============================================================*/ /* For the final graph we wish to override the default tick intervals, and so do not use PLENV */ pladv(0); /* Use standard viewport, and define X range from 0 to 360 degrees, Y range from -1.2 to 1.2. */ plvsta(); plwind(0.0,360.0,-1.2,1.2); /* Draw a box with ticks spaced 30 degrees apart in X, and 0.2 in Y. */ plcol(1); plbox("bcnst",30.0,3,"bcnstv",0.2,2); /* Superimpose a dashed line grid, with 1.5 mm marks and spaces. plstyl expects a pointer!! */ plstyl(1,&mark1,&space1); plcol(2); plbox("g",30.0,3,"g",0.2,2); plstyl(0,&mark0,&space0); plcol(3); pllab("Angle (degrees)","sine","#frPLPLOT Example 1 - Sine function"); for (i=0; i<101; i++ ) { x[i] = 3.6 * i; y[i] = sin(x[i]*3.141592654/180.0); } plcol(4); plline(101,x,y); /* Don't forget to call PLEND to finish off! */ plend(); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.