void myplot2() { PLINT digmax; /* Set up the data */ xscale = 1.; yscale = 0.0014; yoff = 0.0185; /* Do a plot */ digmax = 5; plsyax(digmax, 0); plot1(); }
int main( int argc, char *argv[] ) { PLFLT xmin0, xmax0, ymin0, ymax0, zxmin0, zxmax0, zymin0, zymax0; PLFLT xmin, xmax, ymin, ymax, zxmin, zxmax, zymin, zymax; PLFLT xmid, ymid, wx, wy; PLFLT mar0, aspect0, jx0, jy0, ori0; PLFLT mar, aspect, jx, jy, ori; PLINT win, level2, digmax, digits, compression1, compression2; PLFLT xp0, yp0; PLINT xleng0, yleng0, xoff0, yoff0; PLFLT xp1, yp1; PLINT xleng1, yleng1, xoff1, yoff1; PLFLT xp2, yp2; PLINT xleng2, yleng2, xoff2, yoff2; PLINT fam0, num0, bmax0; PLINT fam1, num1, bmax1; PLINT fam2, num2, bmax2; PLINT r0, g0, b0; PLFLT a0; PLINT r, g, b; PLFLT a; PLINT r1[] = { 0, 255 }; PLINT g1[] = { 255, 0 }; PLINT b1[] = { 0, 0 }; PLFLT a1[] = { 1.0, 1.0 }; int status; char fnam[256]; // Parse and process command line arguments status = 0; (void) plparseopts( &argc, argv, PL_PARSE_FULL ); // Test setting / getting familying parameters before plinit // Save values set by plparseopts to be restored later. plgfam( &fam0, &num0, &bmax0 ); fam1 = 0; num1 = 10; bmax1 = 1000; plsfam( fam1, num1, bmax1 ); // Retrieve the same values? plgfam( &fam2, &num2, &bmax2 ); printf( "family parameters: fam, num, bmax = %d %d %d\n", fam2, num2, bmax2 ); if ( fam2 != fam1 || num2 != num1 || bmax2 != bmax1 ) { fputs( "plgfam test failed\n", stderr ); status = 1; } // Restore values set initially by plparseopts. plsfam( fam0, num0, bmax0 ); // Test setting / getting page parameters before plinit // Save values set by plparseopts to be restored later. plgpage( &xp0, &yp0, &xleng0, &yleng0, &xoff0, &yoff0 ); xp1 = 200.; yp1 = 200.; xleng1 = 400; yleng1 = 200; xoff1 = 10; yoff1 = 20; plspage( xp1, yp1, xleng1, yleng1, xoff1, yoff1 ); // Retrieve the same values? plgpage( &xp2, &yp2, &xleng2, &yleng2, &xoff2, &yoff2 ); printf( "page parameters: xp, yp, xleng, yleng, xoff, yoff = %f %f %d %d %d %d\n", xp2, yp2, xleng2, yleng2, xoff2, yoff2 ); if ( xp2 != xp1 || yp2 != yp1 || xleng2 != xleng1 || yleng2 != yleng1 || xoff2 != xoff1 || yoff2 != yoff1 ) { fputs( "plgpage test failed\n", stderr ); status = 1; } // Restore values set initially by plparseopts. plspage( xp0, yp0, xleng0, yleng0, xoff0, yoff0 ); // Test setting / getting compression parameter across plinit. compression1 = 95; plscompression( compression1 ); // Initialize plplot plinit(); // Test if device initialization screwed around with the preset // compression parameter. plgcompression( &compression2 ); printf( "Output various PLplot parameters\n" ); printf( "compression parameter = %d\n", compression2 ); if ( compression2 != compression1 ) { fputs( "plgcompression test failed\n", stderr ); status = 1; } // Exercise plscolor, plscol0, plscmap1, and plscmap1a to make sure // they work without any obvious error messages. plscolor( 1 ); plscol0( 1, 255, 0, 0 ); plscmap1( r1, g1, b1, 2 ); plscmap1a( r1, g1, b1, a1, 2 ); plglevel( &level2 ); printf( "level parameter = %d\n", level2 ); if ( level2 != 1 ) { fputs( "plglevel test failed.\n", stderr ); status = 1; } pladv( 0 ); xmin0 = 0.01; xmax0 = 0.99; ymin0 = 0.02; ymax0 = 0.49; plvpor( xmin0, xmax0, ymin0, ymax0 ); plgvpd( &xmin, &xmax, &ymin, &ymax ); printf( "plvpor: xmin, xmax, ymin, ymax = %f %f %f %f\n", xmin, xmax, ymin, ymax ); if ( xmin != xmin0 || xmax != xmax0 || ymin != ymin0 || ymax != ymax0 ) { fputs( "plgvpd test failed\n", stderr ); status = 1; } xmid = 0.5 * ( xmin + xmax ); ymid = 0.5 * ( ymin + ymax ); xmin0 = 0.2; xmax0 = 0.3; ymin0 = 0.4; ymax0 = 0.5; plwind( xmin0, xmax0, ymin0, ymax0 ); plgvpw( &xmin, &xmax, &ymin, &ymax ); printf( "plwind: xmin, xmax, ymin, ymax = %f %f %f %f\n", xmin, xmax, ymin, ymax ); if ( xmin != xmin0 || xmax != xmax0 || ymin != ymin0 || ymax != ymax0 ) { fputs( "plgvpw test failed\n", stderr ); status = 1; } // Get world coordinates for middle of viewport plcalc_world( xmid, ymid, &wx, &wy, &win ); printf( "world parameters: wx, wy, win = %f %f %d\n", wx, wy, win ); if ( fabs( wx - 0.5 * ( xmin + xmax ) ) > 1.0E-5 || fabs( wy - 0.5 * ( ymin + ymax ) ) > 1.0E-5 ) { fputs( "plcalc_world test failed\n", stderr ); status = 1; } // Retrieve and print the name of the output file (if any). // This goes to stderr not stdout since it will vary between tests and // we want stdout to be identical for compare test. plgfnam( fnam ); if ( fnam[0] == '\0' ) { printf( "No output file name is set\n" ); } else { printf( "Output file name read\n" ); } fprintf( stderr, "Output file name is %s\n", fnam ); // Set and get the number of digits used to display axis labels // Note digits is currently ignored in pls[xyz]ax and // therefore it does not make sense to test the returned // value plsxax( 3, 0 ); plgxax( &digmax, &digits ); printf( "x axis parameters: digmax, digits = %d %d\n", digmax, digits ); if ( digmax != 3 ) { fputs( "plgxax test failed\n", stderr ); status = 1; } plsyax( 4, 0 ); plgyax( &digmax, &digits ); printf( "y axis parameters: digmax, digits = %d %d\n", digmax, digits ); if ( digmax != 4 ) { fputs( "plgyax test failed\n", stderr ); status = 1; } plszax( 5, 0 ); plgzax( &digmax, &digits ); printf( "z axis parameters: digmax, digits = %d %d\n", digmax, digits ); if ( digmax != 5 ) { fputs( "plgzax test failed\n", stderr ); status = 1; } mar0 = 0.05; aspect0 = PL_NOTSET; jx0 = 0.1; jy0 = 0.2; plsdidev( mar0, aspect0, jx0, jy0 ); plgdidev( &mar, &aspect, &jx, &jy ); printf( "device-space window parameters: mar, aspect, jx, jy = %f %f %f %f\n", mar, aspect, jx, jy ); if ( mar != mar0 || jx != jx0 || jy != jy0 ) { fputs( "plgdidev test failed\n", stderr ); status = 1; } ori0 = 1.0; plsdiori( ori0 ); plgdiori( &ori ); printf( "ori parameter = %f\n", ori ); if ( ori != ori0 ) { fputs( "plgdiori test failed\n", stderr ); status = 1; } xmin0 = 0.1; ymin0 = 0.2; xmax0 = 0.9; ymax0 = 0.8; plsdiplt( xmin0, ymin0, xmax0, ymax0 ); plgdiplt( &xmin, &ymin, &xmax, &ymax ); printf( "plot-space window parameters: xmin, ymin, xmax, ymax = %f %f %f %f\n", xmin, ymin, xmax, ymax ); if ( xmin != xmin0 || ymin != ymin0 || xmax != xmax0 || ymax != ymax0 ) { fputs( "plgdiplt test failed\n", stderr ); status = 1; } zxmin0 = 0.1; zymin0 = 0.1; zxmax0 = 0.9; zymax0 = 0.9; plsdiplz( zxmin0, zymin0, zxmax0, zymax0 ); plgdiplt( &zxmin, &zymin, &zxmax, &zymax ); printf( "zoomed plot-space window parameters: xmin, ymin, xmax, ymax = %f %f %f %f\n", zxmin, zymin, zxmax, zymax ); if ( fabs( zxmin - ( xmin + ( xmax - xmin ) * zxmin0 ) ) > 1.0E-5 || fabs( zymin - ( ymin + ( ymax - ymin ) * zymin0 ) ) > 1.0E-5 || fabs( zxmax - ( xmin + ( xmax - xmin ) * zxmax0 ) ) > 1.0E-5 || fabs( zymax - ( ymin + ( ymax - ymin ) * zymax0 ) ) > 1.0E-5 ) { fputs( "plsdiplz test failed\n", stderr ); status = 1; } r0 = 10; g0 = 20; b0 = 30; plscolbg( r0, g0, b0 ); plgcolbg( &r, &g, &b ); printf( "background colour parameters: r, g, b = %d %d %d\n", r, g, b ); if ( r != r0 || g != g0 || b != b0 ) { fputs( "plgcolbg test failed\n", stderr ); status = 1; } r0 = 20; g0 = 30; b0 = 40; a0 = 0.5; plscolbga( r0, g0, b0, a0 ); plgcolbga( &r, &g, &b, &a ); printf( "background/transparency colour parameters: r, g, b, a = %d %d %d %f\n", r, g, b, a ); if ( r != r0 || g != g0 || b != b0 || a != a0 ) { fputs( "plgcolbga test failed\n", stderr ); status = 1; } plend(); exit( status ); }
int main( int argc, char *argv[] ) { PLINT digmax, cur_strm, new_strm; char ver[80]; // plplot initialization // Parse and process command line arguments plMergeOpts( options, "x01c options", notes ); plparseopts( &argc, argv, PL_PARSE_FULL ); // Get version number, just for kicks plgver( ver ); fprintf( stdout, "PLplot library version: %s\n", ver ); // Initialize plplot // Divide page into 2x2 plots // Note: calling plstar replaces separate calls to plssub and plinit plstar( 2, 2 ); // Select font set as per input flag if ( fontset ) plfontld( 1 ); else plfontld( 0 ); // Set up the data // Original case xscale = 6.; yscale = 1.; xoff = 0.; yoff = 0.; // Do a plot plot1( 0 ); // Set up the data xscale = 1.; yscale = 0.0014; yoff = 0.0185; // Do a plot digmax = 5; plsyax( digmax, 0 ); plot1( 1 ); plot2(); plot3(); // // Show how to save a plot: // Open a new device, make it current, copy parameters, // and replay the plot buffer // if ( f_name ) // command line option '-save filename' { printf( "The current plot was saved in color Postscript under the name `%s'.\n", f_name ); plgstrm( &cur_strm ); // get current stream plmkstrm( &new_strm ); // create a new one plsfnam( f_name ); // file name plsdev( "psc" ); // device type plcpstrm( cur_strm, 0 ); // copy old stream parameters to new stream plreplot(); // do the save by replaying the plot buffer plend1(); // finish the device plsstrm( cur_strm ); // return to previous stream } // Let's get some user input if ( locate_mode ) { for (;; ) { if ( !plGetCursor( &gin ) ) break; if ( gin.keysym == PLK_Escape ) break; pltext(); printf( "subwin = %d, wx = %f, wy = %f, dx = %f, dy = %f\n", gin.subwindow, gin.wX, gin.wY, gin.dX, gin.dY ); printf( "keysym = 0x%02x, button = 0x%02x, string = '%s', type = 0x%02x, state = 0x%02x\n", gin.keysym, gin.button, gin.string, gin.type, gin.state ); plgra(); } } // Don't forget to call plend() to finish off! plend(); exit( 0 ); }
MZ_DLLEXPORT void c_plbox3(const char *xopt, const char *xlabel, PLFLT xtick, PLINT nsubx, const char *yopt, const char *ylabel, PLFLT ytick, PLINT nsuby, const char *zopt, const char *zlabel, PLFLT ztick, PLINT nsubz) { PLFLT dx, dy, tx, ty, ux, uy; PLFLT xmin, xmax, ymin, ymax, zmin, zmax, zscale; PLFLT cxx, cxy, cyx, cyy, cyz; PLINT ln; PLINT *zbflg, *zbcol; PLFLT *zbtck; PLINT xdigmax, xdigits; PLINT ydigmax, ydigits; PLINT zdigmax, zdigits; if (plsc->level < 3) { plabort("plbox3: Please set up window first"); return; } plP_gw3wc(&cxx, &cxy, &cyx, &cyy, &cyz); plP_gdom(&xmin, &xmax, &ymin, &ymax); plP_grange(&zscale, &zmin, &zmax); plgxax(&xdigmax, &xdigits); plgyax(&ydigmax, &ydigits); plgzax(&zdigmax, &zdigits); xdigits = xdigmax; ydigits = ydigmax; zdigits = zdigmax; /* We have to wait until after the plot is drawn to draw back */ /* grid so store this stuff. */ plP_gzback(&zbflg, &zbcol, &zbtck); *zbflg = plP_stsearch(zopt, 'd'); if (*zbflg) { *zbtck = ztick; /* save tick spacing */ *zbcol = plsc->icol0; /* and color */ } if (cxx >= 0.0 && cxy <= 0.0) { ln = plP_stsearch(xopt, 'n'); tx = plP_w3wcx(xmin, ymin, zmin); ty = plP_w3wcy(xmin, ymin, zmin); ux = plP_w3wcx(xmax, ymin, zmin); uy = plP_w3wcy(xmax, ymin, zmin); plxybx(xopt, xlabel, tx, ty, ux, uy, xmin, xmax, xtick, nsubx, 0, &xdigits); dx = ux - tx; dy = uy - ty; plzbx(zopt, zlabel, 1, dx, dy, ux, uy, plP_w3wcy(xmax, ymin, zmax), zmin, zmax, ztick, nsubz, &zdigits); tx = plP_w3wcx(xmin, ymax, zmin); ty = plP_w3wcy(xmin, ymax, zmin); ux = plP_w3wcx(xmin, ymin, zmin); uy = plP_w3wcy(xmin, ymin, zmin); plxybx(yopt, ylabel, tx, ty, ux, uy, ymax, ymin, ytick, nsuby, ln, &ydigits); dx = ux - tx; dy = uy - ty; /* restore zdigits to initial value for second call */ zdigits = zdigmax; plzbx(zopt, zlabel, 0, dx, dy, tx, ty, plP_w3wcy(xmin, ymax, zmax), zmin, zmax, ztick, nsubz, &zdigits); } else if (cxx <= 0.0 && cxy <= 0.0) { ln = plP_stsearch(yopt, 'n'); tx = plP_w3wcx(xmin, ymax, zmin); ty = plP_w3wcy(xmin, ymax, zmin); ux = plP_w3wcx(xmin, ymin, zmin); uy = plP_w3wcy(xmin, ymin, zmin); plxybx(yopt, ylabel, tx, ty, ux, uy, ymax, ymin, ytick, nsuby, 0, &ydigits); dx = ux - tx; dy = uy - ty; plzbx(zopt, zlabel, 1, dx, dy, ux, uy, plP_w3wcy(xmin, ymin, zmax), zmin, zmax, ztick, nsubz, &zdigits); tx = plP_w3wcx(xmax, ymax, zmin); ty = plP_w3wcy(xmax, ymax, zmin); ux = plP_w3wcx(xmin, ymax, zmin); uy = plP_w3wcy(xmin, ymax, zmin); plxybx(xopt, xlabel, tx, ty, ux, uy, xmax, xmin, xtick, nsubx, ln, &xdigits); dx = ux - tx; dy = uy - ty; /* restore zdigits to initial value for second call */ zdigits = zdigmax; plzbx(zopt, zlabel, 0, dx, dy, tx, ty, plP_w3wcy(xmax, ymax, zmax), zmin, zmax, ztick, nsubz, &zdigits); } else if (cxx <= 0.0 && cxy >= 0.0) { ln = plP_stsearch(xopt, 'n'); tx = plP_w3wcx(xmax, ymax, zmin); ty = plP_w3wcy(xmax, ymax, zmin); ux = plP_w3wcx(xmin, ymax, zmin); uy = plP_w3wcy(xmin, ymax, zmin); plxybx(xopt, xlabel, tx, ty, ux, uy, xmax, xmin, xtick, nsubx, 0, &xdigits); dx = ux - tx; dy = uy - ty; plzbx(zopt, zlabel, 1, dx, dy, ux, uy, plP_w3wcy(xmin, ymax, zmax), zmin, zmax, ztick, nsubz, &zdigits); tx = plP_w3wcx(xmax, ymin, zmin); ty = plP_w3wcy(xmax, ymin, zmin); ux = plP_w3wcx(xmax, ymax, zmin); uy = plP_w3wcy(xmax, ymax, zmin); plxybx(yopt, ylabel, tx, ty, ux, uy, ymin, ymax, ytick, nsuby, ln, &ydigits); dx = ux - tx; dy = uy - ty; /* restore zdigits to initial value for second call */ zdigits = zdigmax; plzbx(zopt, zlabel, 0, dx, dy, tx, ty, plP_w3wcy(xmax, ymin, zmax), zmin, zmax, ztick, nsubz, &zdigits); } else if (cxx >= 0.0 && cxy >= 0.0) { ln = plP_stsearch(yopt, 'n'); tx = plP_w3wcx(xmax, ymin, zmin); ty = plP_w3wcy(xmax, ymin, zmin); ux = plP_w3wcx(xmax, ymax, zmin); uy = plP_w3wcy(xmax, ymax, zmin); plxybx(yopt, ylabel, tx, ty, ux, uy, ymin, ymax, ytick, nsuby, 0, &ydigits); dx = ux - tx; dy = uy - ty; plzbx(zopt, zlabel, 1, dx, dy, ux, uy, plP_w3wcy(xmax, ymax, zmax), zmin, zmax, ztick, nsubz, &zdigits); tx = plP_w3wcx(xmin, ymin, zmin); ty = plP_w3wcy(xmin, ymin, zmin); ux = plP_w3wcx(xmax, ymin, zmin); uy = plP_w3wcy(xmax, ymin, zmin); plxybx(xopt, xlabel, tx, ty, ux, uy, xmin, xmax, xtick, nsubx, ln, &xdigits); dx = ux - tx; dy = uy - ty; /* restore zdigits to initial value for second call */ zdigits = zdigmax; plzbx(zopt, zlabel, 0, dx, dy, tx, ty, plP_w3wcy(xmin, ymin, zmax), zmin, zmax, ztick, nsubz, &zdigits); } plsxax(xdigmax, xdigits); plsyax(ydigmax, ydigits); plszax(zdigmax, zdigits); }
static void label_box(const char *xopt, PLFLT xtick1, const char *yopt, PLFLT ytick1) { static char string[40]; PLINT lfx, lix, llx, lmx, lnx, ltx; PLINT lfy, liy, lly, lmy, lny, lty, lvy; PLFLT vpwxmi, vpwxma, vpwymi, vpwyma; PLFLT vpwxmin, vpwxmax, vpwymin, vpwymax; PLFLT pos, tn, tp, offset, height; /* Set plot options from input */ lfx = plP_stsearch(xopt, 'f'); lix = plP_stsearch(xopt, 'i'); llx = plP_stsearch(xopt, 'l'); lmx = plP_stsearch(xopt, 'm'); lnx = plP_stsearch(xopt, 'n'); ltx = plP_stsearch(xopt, 't'); lfy = plP_stsearch(yopt, 'f'); liy = plP_stsearch(yopt, 'i'); lly = plP_stsearch(yopt, 'l'); lmy = plP_stsearch(yopt, 'm'); lny = plP_stsearch(yopt, 'n'); lty = plP_stsearch(yopt, 't'); lvy = plP_stsearch(yopt, 'v'); plgvpw(&vpwxmin, &vpwxmax, &vpwymin, &vpwymax); /* n.b. large change; vpwxmi always numerically less than vpwxma, and * similarly for vpwymi */ vpwxmi = (vpwxmax > vpwxmin) ? vpwxmin : vpwxmax; vpwxma = (vpwxmax > vpwxmin) ? vpwxmax : vpwxmin; vpwymi = (vpwymax > vpwymin) ? vpwymin : vpwymax; vpwyma = (vpwymax > vpwymin) ? vpwymax : vpwymin; /* Write horizontal label(s) */ if ((lmx || lnx) && ltx) { PLINT xmode, xprec, xdigmax, xdigits, xscale; plgxax(&xdigmax, &xdigits); pldprec(vpwxmi, vpwxma, xtick1, lfx, &xmode, &xprec, xdigmax, &xscale); tp = xtick1 * (1. + floor(vpwxmi / xtick1)); for (tn = tp; BETW(tn, vpwxmi, vpwxma); tn += xtick1) { plform(tn, xscale, xprec, string, llx, lfx); height = lix ? 1.75 : 1.5; pos = (vpwxmax > vpwxmin)? (tn - vpwxmi) / (vpwxma - vpwxmi): (vpwxma - tn) / (vpwxma - vpwxmi); if (lnx) plmtex("b", height, pos, 0.5, string); if (lmx) plmtex("t", height, pos, 0.5, string); } xdigits = 2; plsxax(xdigmax, xdigits); /* Write separate exponential label if mode = 1. */ if (!llx && xmode) { pos = 1.0; height = 3.2; sprintf(string, "(x10#u%d#d)", (int) xscale); if (lnx) plmtex("b", height, pos, 0.5, string); if (lmx) plmtex("t", height, pos, 0.5, string); } } /* Write vertical label(s) */ if ((lmy || lny) && lty) { PLINT ymode, yprec, ydigmax, ydigits, yscale; plgyax(&ydigmax, &ydigits); pldprec(vpwymi, vpwyma, ytick1, lfy, &ymode, &yprec, ydigmax, &yscale); ydigits = 0; tp = ytick1 * (1. + floor(vpwymi / ytick1)); for (tn = tp; BETW(tn, vpwymi, vpwyma); tn += ytick1) { plform(tn, yscale, yprec, string, lly, lfy); pos = (vpwymax > vpwymin)? (tn - vpwymi) / (vpwyma - vpwymi): (vpwyma - tn) / (vpwyma - vpwymi); if (lny) { if (lvy) { height = liy ? 1.0 : 0.5; plmtex("lv", height, pos, 1.0, string); } else { height = liy ? 1.75 : 1.5; plmtex("l", height, pos, 0.5, string); } } if (lmy) { if (lvy) { height = liy ? 1.0 : 0.5; plmtex("rv", height, pos, 0.0, string); } else { height = liy ? 1.75 : 1.5; plmtex("r", height, pos, 0.5, string); } } ydigits = MAX(ydigits, strlen(string)); } if (!lvy) ydigits = 2; plsyax(ydigmax, ydigits); /* Write separate exponential label if mode = 1. */ if (!lly && ymode) { sprintf(string, "(x10#u%d#d)", (int) yscale); offset = 0.02; height = 2.0; if (lny) { pos = 0.0 - offset; plmtex("t", height, pos, 1.0, string); } if (lmy) { pos = 1.0 + offset; plmtex("t", height, pos, 0.0, string); } } } }
int main(int argc, char *argv[]) { int i, digmax; int xleng0 = 400, yleng0 = 300, xoff0 = 200, yoff0 = 200; int xleng1 = 400, yleng1 = 300, xoff1 = 500, yoff1 = 500; /* Select either TK or DP driver and use a small window */ /* Using DP results in a crash at the end due to some odd cleanup problems */ /* The geometry strings MUST be in writable memory */ char geometry_master[] = "500x410+100+200"; char geometry_slave[] = "500x410+650+200"; char driver[80]; /* plplot initialization */ /* Parse and process command line arguments */ (void) plparseopts(&argc, argv, PL_PARSE_FULL); plgdev(driver); printf("Demo of multiple output streams via the %s driver.\n", driver); printf("Running with the second stream as slave to the first.\n"); printf("\n"); /* Set up first stream */ plsetopt("geometry", geometry_master); plsdev(driver); plssub(2, 2); plinit(); /* Start next stream */ plsstrm(1); /* Turn off pause to make this a slave (must follow master) */ plsetopt("geometry", geometry_slave); plspause(0); plsdev(driver); plinit(); /* Set up the data & plot */ /* Original case */ plsstrm(0); xscale = 6.; yscale = 1.; xoff = 0.; yoff = 0.; plot1(); /* Set up the data & plot */ xscale = 1.; yscale = 1.e+6; plot1(); /* Set up the data & plot */ xscale = 1.; yscale = 1.e-6; digmax = 2; plsyax(digmax, 0); plot1(); /* Set up the data & plot */ xscale = 1.; yscale = 0.0014; yoff = 0.0185; digmax = 5; plsyax(digmax, 0); plot1(); /* To slave */ /* The pleop() ensures the eop indicator gets lit. */ plsstrm(1); plot4(); pleop(); /* Back to master */ plsstrm(0); plot2(); plot3(); /* To slave */ plsstrm(1); plot5(); pleop(); /* Back to master to wait for user to advance */ plsstrm(0); pleop(); /* Call plend to finish off. */ plend(); exit(0); }