From: <ai...@us...> - 2009-05-27 18:04:52
|
Revision: 10007 http://plplot.svn.sourceforge.net/plplot/?rev=10007&view=rev Author: airwin Date: 2009-05-27 18:01:22 +0000 (Wed, 27 May 2009) Log Message: ----------- Use plpoin to plot outliers with circular symbols. Thanks to Robert Pollak for the initial patch which was modified to use a larger circle. Modified Paths: -------------- trunk/examples/c/x32c.c Modified: trunk/examples/c/x32c.c =================================================================== --- trunk/examples/c/x32c.c 2009-05-26 17:19:35 UTC (rev 10006) +++ trunk/examples/c/x32c.c 2009-05-27 18:01:22 UTC (rev 10007) @@ -58,6 +58,10 @@ static PLFLT uw[] = { 1.071, 1.062, 1.093, 1.045, 1.072, 1.067, 1.085, 1.024, 1.057, 1.071 }; + /* outliers */ + static PLFLT outx[] = { 3.5, 6.5 }; + static PLFLT outy[] = { 0.89, 1.09 }; + static PLFLT pos[] = {0.0, 0.25, 0.5, 0.75, 1.0}; static PLFLT red[] = {0.0, 0.25, 0.5, 1.0, 1.0}; static PLFLT green[] = {1.0, 0.5, 0.5, 0.5, 1.0}; @@ -90,9 +94,9 @@ plmtex("b", 1.0, ((i + 1) * .1 - .05), 0.5, string); } - /* some outliers */ - plcircle(3.5, 0.89); - plcircle(6.5, 1.09); + /* some outliers plotted with intermediate-sized circles, see PLplot + example 06 for other possibilities.*/ + plpoin(2, outx, outy, 22); /* Don't forget to call plend() to finish off! */ @@ -179,33 +183,3 @@ pllsty(1); plline(2, barx, bary); } - -void -plcircle(PLFLT x, PLFLT y) -{ - PLFLT vpxmin, vpxmax, vpymin, vpymax; - PLFLT px, py; - PLINT pxlen, pylen, pxoff, pyoff; - PLFLT axisratio, pageratio, circleratio, rx, ry; - int i; - static PLFLT cx[31], cy[31]; - - /* get circle axis ratio */ - plgvpw(&vpxmin, &vpxmax, &vpymin, &vpymax); - axisratio = (vpxmax -vpxmin) / (vpymax -vpymin); - - plgpage(&px, &py, &pxlen, &pylen, &pxoff, &pyoff); - pageratio = pxlen * 1. / pylen; - - circleratio = axisratio / pageratio; - - ry = 0.001; - rx = circleratio * ry; - for (i = 0; i <= 30; ++i) { - cx[i] = x + cos(i / 30. * 2. * M_PI) * rx; - cy[i] = y + sin(i / 30. * 2. * M_PI) * ry; - } - - pllsty(1); - plline(31, cx, cy); -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |