/* >>>>>>>>>> EXA_10 <<<<<<<<<< */ void exa_10 (void) { int i; char cbuf[40], cstr[4]; for (i = 0; i < 18; i++) xray[i] = 1.f; setpag ("da4p"); disini (); setvlt ("small"); pagera (); hwfont (); axspos (250, 2700); axslen (1600, 2200); titlin ("Shading Patterns (PIEGRF)", 3); height (50); legini (cbuf, 18, 2); for (i = 0; i < 18; i++) { sprintf (cstr, "%d", i); leglin (cbuf, cstr, i + 1); } chnpie ("both"); labels ("none", "pie"); piegrf (cbuf, 1, xray, 18); title (); disfin (); }
/* >>>>>>>>>> EXA_7 <<<<<<<<<< */ void exa_7 (void) { int n = 100, i, nx, ny; double fpi = 3.1415926/180., step, x; char cbuf[20]; step = 360. / (n - 1); for (i = 0; i < n; i++) { xray[i] = (float) (i * step); x=xray[i] * fpi; y1ray[i] = (float) sin (x); y2ray[i] = (float) cos (x); } disini (); hwfont (); pagera (); axspos (450, 1800); axslen (2200, 1200); name ("X-axis", "x"); name ("Y-axis", "y"); labdig (-1, "x"); ticks (10, "xy"); titlin ("Demonstration of Curve", 1); titlin ("Legend", 3); graf (0.f, 360.f, 0.f, 90.f, -1.f, 1.f, -1.f, 0.5f); title (); xaxgit (); chncrv ("both"); curve (xray, y1ray, n); curve (xray, y2ray, n); legini (cbuf, 2, 7); nx = nxposn (190.f); ny = nyposn (0.75f); legpos (nx, ny); leglin (cbuf, "sin (x)", 1); leglin (cbuf, "cos (x)", 2); legtit ("Legend"); legend (cbuf, 3); disfin (); }
/* >>>>>>>>>> EX10_2 <<<<<<<<<< */ void ex10_2 (void) { int nya = 2800, i; static char *ctit = "Pie Charts (PIEGRF)", cbuf[41]; static float xdray[5] = {1.f, 2.5f, 2.f, 2.7f, 1.8f}; setpag ("da4p"); disini (); pagera (); hwfont (); axslen (1600, 1000); titlin (ctit, 2); chnpie ("both"); legini (cbuf, 5, 8); leglin (cbuf, "FIRST", 1); leglin (cbuf, "SECOND", 2); leglin (cbuf, "THIRD", 3); leglin (cbuf, "FOURTH", 4); leglin (cbuf, "FIFTH", 5); patcyc (1, 7L); patcyc (2, 4L); patcyc (3, 13L); patcyc (4, 3L); patcyc (5, 5L); for (i = 0; i < 2; i++) { axspos (250,nya - i * 1200); if (i == 1) { labels ("data", "pie"); labpos ("external", "pie"); } piegrf (cbuf, 1, xdray, 5); if (i == 1) { height (50); title (); } endgrf (); } disfin (); }
int main ( int argc, char *argv[] ) /******************************************************************************/ /* Purpose: MAIN demonstrates the use of bar graphs. Modified: 09 April 2011 Reference: Helmut Michels, The Data Plotting Software DISLIN - version 10.4, Shaker Media GmbH, January 2010, ISBN13: 978-3-86858-517-9. */ { static char cbuf[25]; static char *ctit = "Bar Graphs (BARS)"; int i; int nya = 2700; static float x[9] = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 }; static float y[9] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; static float y1[9] = { 1.0, 1.5, 2.5, 1.3, 2.0, 1.2, 0.7, 1.4, 1.1 }; static float y2[9] = { 2.0, 2.7, 3.5, 2.1, 3.2, 1.9, 2.0, 2.3, 1.8 }; static float y3[9] = { 4.0, 3.5, 4.5, 3.7, 4.0, 2.9, 3.0, 3.2, 2.6 }; printf ( "\n" ); printf ( "DISLIN_EX05:\n" ); printf ( " C version:\n" ); printf ( " Demonstrate the display of data in bar graphs.\n" ); /* Specify the format of the output file. */ metafl ( "png" ); /* Specify that if a file already exists of the given name, the new data should overwrite the old. */ filmod ( "delete" ); /* Specify the name of the output graphics file. */ setfil ( "dislin_ex05.png" ); /* Choose the page size and orientation. */ setpag ( "usap" ); /* For PNG output, reverse the default black background to white. */ scrmod ( "reverse" ); /* Open DISLIN. */ disini ( ); /* Plot a border around the page. */ pagera ( ); /* Use the COMPLEX font. */ complx ( ); ticks ( 1, "x" ); intax ( ); axslen ( 1600, 700 ); titlin ( ctit, 3 ); legini ( cbuf, 3, 8 ); leglin ( cbuf, "FIRST", 1 ); leglin ( cbuf, "SECOND", 2 ); leglin ( cbuf, "THIRD", 3 ); legtit ( " " ); shdpat ( 5L ); for ( i = 1; i <= 3; i++ ) { if ( 1 < i ) { labels ( "none", "x" ); } axspos ( 300, nya-(i-1)*800 ); graf ( 0.0, 10.0, 0.0, 1.0, 0.0, 5.0, 0.0, 1.0 ); if ( i == 1 ) { bargrp ( 3, 0.15 ); color ( "red" ); bars ( x, y, y1, 9 ); color ( "green" ); bars ( x, y, y2, 9 ); color ( "blue" ); bars ( x, y, y3, 9 ); color ( "fore" ); reset ( "bargrp" ); } else if ( i == 2 ) { height ( 30 ); labels ( "delta", "bars" ); labpos ( "center", "bars" ); color ( "red" ); bars ( x, y, y1, 9 ); color ( "green" ); bars ( x, y1, y2, 9 ); color ( "blue" ); bars ( x, y2, y3, 9 ); color ( "fore" ); reset ( "height" ); } else if ( i == 3 ) { labels ( "second", "bars" ); labpos ( "outside", "bars" ); color ( "red" ); bars ( x, y, y1, 9 ); color ( "fore" ); } if ( i < 3 ) { legend ( cbuf, 7 ); } else { height ( 50 ); title ( ); } endgrf ( ); } /* Close DISLIN. */ disfin ( ); /* Terminate. */ printf ( "\n" ); printf ( "DISLIN_EX05:\n" ); printf ( " Normal end of execution.\n" ); return 0; }
/* >>>>>>>>>> EX10_1 <<<<<<<<<< */ void ex10_1 (void) { int nya = 2700, i; static char *ctit = "Bar Graphs (BARS)", cbuf[25]; static float x[9] = {1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f}, y[9] = {0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f}, y1[9] = {1.f, 1.5f, 2.5f, 1.3f, 2.0f, 1.2f, 0.7f, 1.4f, 1.1f}, y2[9] = {2.f, 2.7f, 3.5f, 2.1f, 3.2f, 1.9f, 2.0f, 2.3f, 1.8f}, y3[9] = {4.f, 3.5f, 4.5f, 3.7f, 4.0f, 2.9f, 3.0f, 3.2f, 2.6f}; setpag ("da4p"); disini (); pagera (); hwfont (); ticks (1, "x"); intax ();; axslen (1600, 700); titlin (ctit, 3); legini (cbuf, 3, 8); leglin (cbuf, "FIRST", 1); leglin (cbuf, "SECOND", 2); leglin (cbuf, "THIRD", 3); legtit (" "); shdpat (5L); for (i = 1; i <= 3; i++) { if (i > 1) labels ("none", "x"); axspos (300, nya - (i - 1) * 800); graf (0.f, 10.f, 0.f, 1.f, 0.f, 5.f, 0.f, 1.f); if (i == 1) { bargrp (3, 0.15f); color ("red"); bars (x, y, y1, 9); color ("green"); bars (x, y, y2, 9); color ("blue"); bars (x, y, y3, 9); color ("fore"); reset ("bargrp"); } else if (i == 2) { height (30); labels ("delta", "bars"); labpos ("center", "bars"); color ("red"); bars (x, y, y1, 9); color ("green"); bars (x, y1, y2, 9); color ("blue"); bars (x, y2, y3, 9); color ("fore"); reset ("height"); } else if (i == 3) { labels ("second", "bars"); labpos ("outside", "bars"); color ("red"); bars (x, y, y1, 9); color ("fore"); } if (i != 3) legend (cbuf, 7); if (i == 3) { height (50); title (); } endgrf (); } disfin (); }