Doxygen Source Code Documentation
plot_ts.c File Reference
#include "coxplot.h"#include <math.h>Go to the source code of this file.
Defines | |
| #define | WAY_BIG 1.e+10 |
| #define | NCLR_MAX 19 |
| #define | STGOOD(s) ( (s) != NULL && (s)[0] != '\0' ) |
| #define | SY 0.07 |
Functions | |
| float | p10 (float x) |
| void | plot_ts_xypush (int a, int b) |
| void | plot_ts_xfix (int nax, int max, float xb, float xt) |
| void | plot_ts_yfix (int nay, int may, float yb, float yt) |
| void | init_colors (void) |
| MEM_plotdata * | plot_ts_mem (int nx, float *x, int ny, int ymask, float **y, char *lab_xxx, char *lab_yyy, char *lab_top, char **nam_yyy) |
| void | plot_ts_lab (Display *dpy, int nx, float *x, int ny, float **y, char *lab_xxx, char *lab_yyy, char *lab_top, char **nam_yyy, void_func *killfunc) |
| MEM_topshell_data * | plot_ts_init (Display *dpy, float xbot, float xtop, int ny, float ybot, float ytop, char *lab_xxx, char *lab_yyy, char *lab_top, char **nam_yyy, void_func *killfunc) |
| void | plot_ts_addto (MEM_topshell_data *mp, int nx, float *x, int ny, float **y) |
Variables | |
| float | ccc [NCLR_MAX][3] |
| int | NCLR = 4 |
| int | ilab [4] = { 0,2,3,1 } |
| float | THIK = 0.003 |
| int | xpush = 1 |
| int | ypush = 1 |
| float | xxbot |
| float | xxtop |
| float | yybot |
| float | yytop |
| int | nnaxx = -1 |
| int | mmaxx = -1 |
| int | nnayy = -1 |
| int | mmayy = -1 |
Define Documentation
|
|
Definition at line 16 of file plot_ts.c. Referenced by init_colors(). |
|
|
|
|
|
Definition at line 30 of file plot_ts.c. Referenced by plot_ts_addto(), plot_ts_init(), and plot_ts_mem(). |
|
|
Definition at line 10 of file plot_ts.c. Referenced by plot_ts_addto(), and plot_ts_mem(). |
Function Documentation
|
|
Definition at line 56 of file plot_ts.c. References ccc, getenv(), NCLR, NCLR_MAX, strtod(), and THIK. Referenced by plot_ts_addto(), plot_ts_init(), and plot_ts_mem().
00057 {
00058 static int first=1 ;
00059 char ename[32] , *eee ;
00060 float rf,gf,bf ;
00061 int ii ;
00062
00063 if( !first ) return ;
00064 first = 0 ;
00065
00066 /* init ii to 0 (was 1) to match README.environment 19 May 2004 [rickr] */
00067 for( ii=0 ; ii < NCLR_MAX ; ii++ ){
00068 sprintf(ename,"AFNI_1DPLOT_COLOR_%02d",ii+1) ;
00069 eee = getenv(ename) ;
00070 if( eee == NULL && ii < 9 ){ /** 21 Apr 2005: check alternatives **/
00071 sprintf(ename,"AFNI_1DPLOT_COLOR_%1d",ii+1) ; eee = getenv(ename) ;
00072 }
00073 if( eee == NULL && ii <= 9 ){
00074 sprintf(ename,"AFNI_1DPLOT_COLOR_O%1d",ii+1) ; eee = getenv(ename) ;
00075 }
00076 if( eee != NULL ){
00077 rf=gf=bf = -1.0 ;
00078 sscanf( eee , "rgbi:%f/%f/%f" , &rf,&gf,&bf ) ;
00079 if( rf >= 0.0 && rf <= 1.0 && gf >= 0.0 && gf <= 1.0 && bf >= 0.0 && bf <= 1.0 ){
00080 ccc[ii][0] = rf ; ccc[ii][1] = gf ; ccc[ii][2] = bf ;
00081 NCLR = ii+1 ;
00082 } else {
00083 fprintf(stderr,
00084 "%s = %s is not in form 'rgbi:val/val/val' with each val in [0,1].\n" ,
00085 ename , eee ) ;
00086 }
00087 }
00088 }
00089
00090 eee = getenv("AFNI_1DPLOT_THIK") ; /* 27 Mar 2004 */
00091 if( eee != NULL ){
00092 rf = strtod(eee,NULL) ;
00093 if( rf >= 0.0 && rf <= 0.05 ) THIK = rf ;
00094 else
00095 fprintf(stderr,"AFNI_1DPLOT_THIK is not in range [0,0.05].\n") ;
00096 }
00097 }
|
|
|
Definition at line 436 of file plot_ts.c. Referenced by PLOT_scatterellipse(), plot_strip_init(), plot_ts_init(), plot_ts_mem(), and PLUTO_scatterplot().
00437 {
00438 double y ;
00439
00440 if( x == 0.0 ) return 0.0 ;
00441 if( x < 0.0 ) x = -x ;
00442 y = floor(log10(x)+0.000001) ; y = pow( 10.0 , y ) ;
00443 return (float) y ;
00444 }
|
|
||||||||||||||||||||||||
|
Definition at line 639 of file plot_ts.c. References ccc, MEM_topshell_data::drawing, init_colors(), MEMPLOT_IDENT, MEMPLOT_NLINE, memplot_to_X11_sef(), mp, MEM_topshell_data::mp, NCLR, plotpak_line(), plotpak_set(), set_active_memplot(), set_color_memplot(), set_thick_memplot(), SY, THIK, MEM_topshell_data::userdata, MEM_topshell_data::valid, and WAY_BIG. Referenced by AFNI_drive_addto_graph_xy(), and RT_registration_3D_realtime().
00641 {
00642 int ii , jj , yall , start ;
00643 float pbot,ptop , xobot,xotop,yobot,yotop , yll,yhh ;
00644 float xbot,xtop , ybot,ytop ;
00645 float * yy , * xx ;
00646 float * ud ;
00647
00648 if( mp == NULL || mp->userdata == NULL || ! mp->valid ||
00649 nx <= 1 || ny == 0 || x == NULL || y == NULL ) return ;
00650
00651 init_colors() ;
00652
00653 ud = (float *) mp->userdata ;
00654 xobot = ud[0] ; xotop = ud[1] ; yobot = ud[2] ; yotop = ud[3] ;
00655 xbot = ud[4] ; xtop = ud[5] ; ybot = ud[6] ; ytop = ud[7] ;
00656
00657 yall = (ny > 0) ; if( !yall ) ny = -ny ;
00658
00659 ii = set_active_memplot( MEMPLOT_IDENT(mp->mp) ) ;
00660 if( ii != 0 ) return ;
00661
00662 start = MEMPLOT_NLINE(mp->mp) ;
00663 xx = x ;
00664
00665 if( yall ){ /*-- all in one big happy box --*/
00666
00667 plotpak_set( xobot,xotop , yobot,yotop , xbot,xtop , ybot,ytop , 1 ) ;
00668 set_thick_memplot( THIK ) ;
00669
00670 /* plot data */
00671
00672 for( jj=0 ; jj < ny ; jj++ ){
00673 set_color_memplot( ccc[jj%NCLR][0] , ccc[jj%NCLR][1] , ccc[jj%NCLR][2] ) ;
00674
00675 yy = y[jj] ;
00676 for( ii=1 ; ii < nx ; ii++ ){
00677 if( xx[ii-1] < WAY_BIG && xx[ii] < WAY_BIG &&
00678 yy[ii-1] < WAY_BIG && yy[ii] < WAY_BIG )
00679
00680 plotpak_line( xx[ii-1] , yy[ii-1] , xx[ii] , yy[ii] ) ;
00681 }
00682 }
00683 set_thick_memplot( 0.0 ) ;
00684 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00685
00686 } else { /*-- each in its own little sad box --*/
00687
00688 float dyo = (yotop-yobot) / ( (1.0+SY) * ny - SY ) ;
00689
00690 set_thick_memplot( THIK ) ;
00691
00692 for( jj=ny-1 ; jj >= 0 ; jj-- ){
00693 yll = yobot + jj*(1.0+SY)*dyo ; yhh = yll + dyo ;
00694 plotpak_set( xobot,xotop , yll,yhh , xbot,xtop , ybot,ytop , 1 ) ;
00695 set_color_memplot( ccc[jj%NCLR][0] , ccc[jj%NCLR][1] , ccc[jj%NCLR][2] ) ;
00696
00697 yy = y[jj] ;
00698 for( ii=1 ; ii < nx ; ii++ ){
00699 if( xx[ii-1] < WAY_BIG && xx[ii] < WAY_BIG &&
00700 yy[ii-1] < WAY_BIG && yy[ii] < WAY_BIG )
00701
00702 plotpak_line( xx[ii-1] , yy[ii-1] , xx[ii] , yy[ii] ) ;
00703 }
00704 }
00705 set_thick_memplot( 0.0 ) ;
00706 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00707 }
00708
00709 memplot_to_X11_sef( XtDisplay(mp->drawing) , XtWindow(mp->drawing) ,
00710 mp->mp , start,0,MEMPLOT_FREE_ASPECT ) ;
00711
00712 return ;
00713 }
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
Definition at line 448 of file plot_ts.c. References ccc, create_memplot_surely(), dpy, free, get_active_memplot(), ilab, init_colors(), malloc, memplot_to_topshell(), mp, NCLR, p10(), plotpak_line(), plotpak_perimm(), plotpak_pwritf(), plotpak_set(), plotpak_setlin(), set_color_memplot(), set_thick_memplot(), STGOOD, SY, THIK, MEM_topshell_data::userdata, xpush, and ypush. Referenced by AFNI_drive_open_graph_xy(), and RT_registration_3D_realtime().
00454 {
00455 int ii , jj , np , nnax,nnay , mmax,mmay , yall ;
00456 float pbot,ptop , xobot,xotop,yobot,yotop , yll,yhh ;
00457 char str[32] ;
00458 float * ud ;
00459 MEM_topshell_data * mp ;
00460
00461 /*-- sanity check --*/
00462
00463 if( dpy == NULL || ny == 0 || xbot >= xtop || ybot >= ytop ) return NULL ;
00464
00465 init_colors() ;
00466
00467 /*-- push range of x outwards --*/
00468
00469 pbot = p10(xbot) ; ptop = p10(xtop) ; if( ptop < pbot ) ptop = pbot ;
00470 if( ptop != 0.0 && xpush ){
00471 np = (xtop-xbot) / ptop ;
00472 switch( np ){
00473 case 1: ptop *= 0.1 ; break ;
00474 case 2: ptop *= 0.2 ; break ;
00475 case 3: ptop *= 0.25 ; break ;
00476 case 4:
00477 case 5: ptop *= 0.5 ; break ;
00478 }
00479 xbot = floor( xbot/ptop ) * ptop ;
00480 xtop = ceil( xtop/ptop ) * ptop ;
00481 nnax = floor( (xtop-xbot) / ptop + 0.5 ) ;
00482 mmax = (nnax < 3) ? 10
00483 : (nnax < 6) ? 5 : 2 ;
00484 } else {
00485 nnax = 1 ; mmax = 10 ;
00486 ii = (int)rint(xtop-xbot) ;
00487 if( fabs(xtop-xbot-ii) < 0.01 && ii <= 200 ) mmax = ii ;
00488 }
00489
00490 /*-- push range of y outwards --*/
00491
00492 yall = (ny > 0) ; if( !yall ) ny = -ny ;
00493
00494 pbot = p10(ybot) ; ptop = p10(ytop) ; if( ptop < pbot ) ptop = pbot ;
00495 if( ptop != 0.0 && ypush ){
00496 np = (ytop-ybot) / ptop ;
00497 switch( np ){
00498 case 1: ptop *= 0.1 ; break ;
00499 case 2: ptop *= 0.2 ; break ;
00500 case 3: ptop *= 0.25 ; break ;
00501 case 4:
00502 case 5: ptop *= 0.5 ; break ;
00503 }
00504 ybot = floor( ybot/ptop ) * ptop ;
00505 ytop = ceil( ytop/ptop ) * ptop ;
00506 nnay = floor( (ytop-ybot) / ptop + 0.5 ) ;
00507 mmay = (nnay < 3) ? 10
00508 : (nnay < 6) ? 5 : 2 ;
00509 } else {
00510 nnay = 1 ; mmay = 10 ;
00511 }
00512
00513 /*-- setup to plot --*/
00514
00515 create_memplot_surely( "Tsplot" , 1.3 ) ;
00516 set_thick_memplot( 0.5*THIK ) ;
00517
00518 /*-- plot labels, if any --*/
00519
00520 xobot = 0.15 ; xotop = 1.27 ; /* set objective size of plot */
00521 yobot = 0.1 ; yotop = 0.95 ;
00522
00523 if( STGOOD(lab_top) ){ yotop -= 0.02 ; yobot -= 0.01 ; }
00524 if( nam_yyy != NULL ){ xotop -= 0.16 ; xobot -= 0.02 ; }
00525
00526 /* x-axis label? */
00527
00528 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00529 if( STGOOD(lab_xxx) )
00530 plotpak_pwritf( 0.5*(xobot+xotop) , yobot-0.06 , lab_xxx , 16 , 0 , 0 ) ;
00531
00532 /* y-axis label? */
00533
00534 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00535 if( STGOOD(lab_yyy) )
00536 plotpak_pwritf( xobot-0.10 , 0.5*(yobot+yotop) , lab_yyy , 16 , 90 , 0 ) ;
00537
00538 /* label at top? */
00539
00540 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00541 if( STGOOD(lab_top) )
00542 plotpak_pwritf( xobot+0.01 , yotop+0.01 , lab_top , 18 , 0 , -2 ) ;
00543
00544 /*-- plot all on same vertical scale --*/
00545
00546 ud = (float *) malloc( sizeof(float) * 8 ) ;
00547 ud[0] = xobot ; ud[1] = xotop ; ud[2] = yobot ; ud[3] = yotop ;
00548 ud[4] = xbot ; ud[5] = xtop ; ud[6] = ybot ; ud[7] = ytop ;
00549
00550 if( yall ){
00551
00552 /* do name labels at right? */
00553
00554 if( nam_yyy != NULL ){
00555 float yv = yotop ; int sz ;
00556
00557 for( jj=0 ; jj < ny ; jj++ ){
00558 if( STGOOD(nam_yyy[jj]) ){
00559 set_color_memplot( ccc[jj%NCLR][0] , ccc[jj%NCLR][1] , ccc[jj%NCLR][2] ) ;
00560 set_thick_memplot( 2*THIK ) ;
00561 plotpak_line( xotop+0.008 , yv , xotop+0.042 , yv ) ;
00562 set_thick_memplot( 0.5*THIK ) ;
00563 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00564 sz = (strlen(nam_yyy[jj]) <= 10) ? 12 : 10 ;
00565 plotpak_pwritf( xotop+0.048 , yv , nam_yyy[jj] , sz , 0 , -1 ) ;
00566 yv -= 0.05 ;
00567 }
00568 }
00569 }
00570
00571 /* plot axes */
00572
00573 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00574 plotpak_set( xobot,xotop , yobot,yotop , xbot,xtop , ybot,ytop , 1 ) ;
00575 plotpak_perimm( nnax,mmax , nnay,mmay , ilab[(nnax>0)+2*(nnay>0)] ) ;
00576
00577 } else { /*-- plot each on separate vertical scale --*/
00578
00579 float dyo = (yotop-yobot) / ( (1.0+SY) * ny - SY ) ;
00580
00581 /* name labels at right? */
00582
00583 if( nam_yyy != NULL ){
00584 float yv = yotop ; int sz ;
00585
00586 for( jj=0 ; jj < ny ; jj++ ){
00587 yll = yobot + jj*(1.0+SY)*dyo ; yhh = yll + dyo ;
00588 if( STGOOD(nam_yyy[jj]) ){
00589 set_color_memplot( ccc[jj%NCLR][0] , ccc[jj%NCLR][1] , ccc[jj%NCLR][2] ) ;
00590 set_thick_memplot( 2*THIK ) ;
00591 yv = 0.7*yhh + 0.3*yll ;
00592 plotpak_line( xotop+0.008 , yv , xotop+0.042 , yv ) ;
00593 set_thick_memplot( 0.5*THIK ) ;
00594 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00595 sz = (strlen(nam_yyy[jj]) <= 10) ? 12 : 10 ;
00596 plotpak_pwritf( xotop+0.048 , yv , nam_yyy[jj] , sz , 0 , -1 ) ;
00597 }
00598 }
00599 }
00600
00601 /* data each in its own box */
00602
00603 nnay = 1 ;
00604 pbot = p10(ybot) ; ptop = p10(ytop) ;
00605 if( ptop > pbot && pbot > 0.0 ) ptop = pbot ;
00606 if( ptop != 0.0 ) mmay = floor( (ytop-ybot) / ptop + 0.5 ) ;
00607 else mmay = 5 ; /* shouldn't happen */
00608
00609 if( mmay == 1 ) mmay = 5 ;
00610 else if( mmay == 2 ) mmay = 4 ;
00611 else if( mmay == 3 ) mmay = 6 ;
00612
00613 for( jj=ny-1 ; jj >= 0 ; jj-- ){
00614 yll = yobot + jj*(1.0+SY)*dyo ; yhh = yll + dyo ;
00615 plotpak_set( xobot,xotop , yll,yhh , xbot,xtop , ybot,ytop , 1 ) ;
00616 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00617 plotpak_perimm( nnax,mmax , nnay,mmay , ilab[(nnax>0)*(jj==0)+2*(nnay>0)] ) ;
00618 if( ybot < 0.0 && ytop > 0.0 ){
00619 plotpak_setlin(5) ;
00620 plotpak_line( xbot,0.0 , xtop,0.0 ) ;
00621 plotpak_setlin(1) ;
00622 }
00623 }
00624 }
00625
00626 /*-- display --*/
00627
00628 mp = memplot_to_topshell( dpy , get_active_memplot() , killfunc ) ;
00629 if( mp == NULL ){ free(ud) ; return NULL; }
00630 mp->userdata = ud ;
00631
00632 /*-- exit, stage left --*/
00633
00634 return mp ;
00635 }
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
Definition at line 411 of file plot_ts.c. References dpy, memplot_to_topshell(), mp, and plot_ts_mem(). Referenced by MCW_choose_CB(), PLUTO_histoplot(), RT_finish_dataset(), startup_timeout_CB(), T3D_check_outliers(), and VOLREG_main().
00415 {
00416 MEM_plotdata * mp ;
00417 int ymask = 0 ;
00418
00419 if( dpy == NULL ) return ;
00420
00421 if( ny < 0 ){ ymask = TSP_SEPARATE_YBOX ; ny = -ny ; }
00422
00423 mp = plot_ts_mem( nx,x , ny,ymask,y , lab_xxx , lab_yyy , lab_top , nam_yyy ) ;
00424 if( mp != NULL )
00425 (void) memplot_to_topshell( dpy , mp , killfunc ) ;
00426
00427 return ;
00428 }
|
|
||||||||||||||||||||||||||||||||||||||||
|
21 Apr 2005: check alternatives * Definition at line 112 of file plot_ts.c. References ccc, create_memplot_surely(), free, get_active_memplot(), ilab, init_colors(), malloc, mmaxx, mmayy, mp, NCLR, nnaxx, nnayy, p10(), plotpak_line(), plotpak_perimm(), plotpak_pwritf(), plotpak_set(), plotpak_setlin(), set_color_memplot(), set_thick_memplot(), STGOOD, SY, THIK, WAY_BIG, xpush, xxbot, xxtop, ypush, yybot, and yytop. Referenced by ISQ_graymap_draw(), ISQ_rowgraph_draw(), main(), plot_ts_lab(), plot_ts_qqq(), and ROIPLOT_main().
00115 {
00116 int ii , jj , np , nnax,nnay , mmax,mmay ;
00117 float *xx , *yy ;
00118 float xbot,xtop , ybot,ytop , pbot,ptop , xobot,xotop,yobot,yotop ;
00119 char str[32] ;
00120 int yall , ysep ;
00121 float *ylo , *yhi , yll,yhh ;
00122 MEM_plotdata *mp ;
00123
00124 /*-- sanity check --*/
00125
00126 if( nx <= 1 || ny == 0 || y == NULL ) return NULL ;
00127
00128 init_colors() ;
00129
00130 /*-- make up an x-axis if none given --*/
00131
00132 if( x == NULL ){
00133 xx = (float *) malloc( sizeof(float) * nx ) ;
00134 for( ii=0 ; ii < nx ; ii++ ) xx[ii] = ii ;
00135 xbot = 0 ; xtop = nx-1 ;
00136 } else {
00137 xx = x ;
00138 xbot = WAY_BIG ; xtop = -WAY_BIG ;
00139 for( ii=0 ; ii < nx ; ii++ ){
00140 if( xx[ii] < xbot && xx[ii] < WAY_BIG ) xbot = xx[ii] ;
00141 if( xx[ii] > xtop && xx[ii] < WAY_BIG ) xtop = xx[ii] ;
00142 }
00143 if( xbot >= xtop ) return NULL ;
00144 }
00145
00146 /*-- push range of x outwards --*/
00147
00148 pbot = p10(xbot) ; ptop = p10(xtop) ; if( ptop < pbot ) ptop = pbot ;
00149 if( nnaxx >= 0 ){
00150 nnax = nnaxx ; nnaxx = -1 ;
00151 mmax = mmaxx ;
00152 xbot = xxbot ;
00153 xtop = xxtop ;
00154 } else if( ptop != 0.0 && xpush ){
00155 np = (xtop-xbot) / ptop ;
00156 switch( np ){
00157 case 1: ptop *= 0.1 ; break ;
00158 case 2: ptop *= 0.2 ; break ;
00159 case 3: ptop *= 0.25 ; break ;
00160 case 4:
00161 case 5: ptop *= 0.5 ; break ;
00162 }
00163 xbot = floor( xbot/ptop ) * ptop ;
00164 xtop = ceil( xtop/ptop ) * ptop ;
00165 nnax = floor( (xtop-xbot) / ptop + 0.5 ) ;
00166 mmax = (nnax < 3) ? 10
00167 : (nnax < 6) ? 5 : 2 ;
00168 } else {
00169 nnax = 1 ; mmax = 10 ;
00170 ii = (int)rint(xtop-xbot) ;
00171 if( fabs(xtop-xbot-ii) < 0.01 && ii <= 200 ) mmax = ii ;
00172 }
00173
00174 /*-- find range of y --*/
00175
00176 yall = (ny == 1) || ((ymask & TSP_SEPARATE_YBOX) == 0) ;
00177 ysep = (ymask & TSP_SEPARATE_YSCALE) != 0 ;
00178 /* Nov 1998: find range of */
00179 ylo = (float *) malloc(sizeof(float)*ny) ; /* each array separately. */
00180 yhi = (float *) malloc(sizeof(float)*ny) ;
00181
00182 ybot = WAY_BIG ; ytop = -WAY_BIG ;
00183 for( jj=0 ; jj < ny ; jj++ ){
00184 yy = y[jj] ; yll = WAY_BIG ; yhh = -WAY_BIG ;
00185 for( ii=0 ; ii < nx ; ii++ ){
00186 if( yy[ii] < yll && yy[ii] < WAY_BIG ) yll = yy[ii] ;
00187 if( yy[ii] > yhh && yy[ii] < WAY_BIG ) yhh = yy[ii] ;
00188 }
00189 ylo[jj] = yll ; yhi[jj] = yhh ;
00190 if( ybot > yll ) ybot = yll ;
00191 if( ytop < yhh ) ytop = yhh ;
00192 if( yll >= yhh ){ /* shouldn't happen */
00193 yhh = yll + 0.05*fabs(yll) + 0.5 ;
00194 yll = yll - 0.05*fabs(yll) - 0.5 ;
00195 ylo[jj] = yll ; yhi[jj] = yhh ;
00196 }
00197 }
00198 if( ybot >= ytop ){ /* shouldn't happen */
00199 ytop = ybot + 0.05*fabs(ybot) + 0.5 ;
00200 ybot = ybot - 0.05*fabs(ybot) - 0.5 ;
00201 }
00202
00203 /* 30 Dec 1998 */
00204
00205 if( !ysep ){
00206 for( jj=0 ; jj < ny ; jj++ ){ ylo[jj] = ybot ; yhi[jj] = ytop ; }
00207 }
00208
00209 /*-- push range of y outwards --*/
00210
00211 pbot = p10(ybot) ; ptop = p10(ytop) ; if( ptop < pbot ) ptop = pbot ;
00212 if( nnayy >= 0 ){
00213 nnay = nnayy ; nnayy = -1 ;
00214 mmay = mmayy ;
00215 ybot = yybot ;
00216 ytop = yytop ;
00217 for( jj=0 ; jj < ny ; jj++ ){ ylo[jj] = ybot ; yhi[jj] = ytop ; }
00218 } else if( ptop != 0.0 && ypush ){
00219 np = (ytop-ybot) / ptop ;
00220 switch( np ){
00221 case 1: ptop *= 0.1 ; break ;
00222 case 2: ptop *= 0.2 ; break ;
00223 case 3: ptop *= 0.25 ; break ;
00224 case 4:
00225 case 5: ptop *= 0.5 ; break ;
00226 }
00227 ybot = floor( ybot/ptop ) * ptop ;
00228 ytop = ceil( ytop/ptop ) * ptop ;
00229 nnay = floor( (ytop-ybot) / ptop + 0.5 ) ;
00230 mmay = (nnay < 3) ? 10
00231 : (nnay < 6) ? 5 : 2 ;
00232 } else {
00233 nnay = 1 ; mmay = 10 ;
00234 }
00235
00236 for( jj=0 ; jj < ny ; jj++ ){
00237 pbot = p10(ylo[jj]) ; ptop = p10(yhi[jj]) ; if( ptop < pbot ) ptop = pbot ;
00238 if( ptop != 0.0 ){
00239 np = (yhi[jj]-ylo[jj]) / ptop ;
00240 switch( np ){
00241 case 1: ptop *= 0.1 ; break ;
00242 case 2: ptop *= 0.2 ; break ;
00243 case 3: ptop *= 0.25 ; break ;
00244 case 4:
00245 case 5: ptop *= 0.5 ; break ;
00246 }
00247 ylo[jj] = floor( ylo[jj]/ptop ) * ptop ;
00248 yhi[jj] = ceil( yhi[jj]/ptop ) * ptop ;
00249 }
00250 }
00251
00252 /*-- setup to plot --*/
00253
00254 create_memplot_surely( "tsplot" , 1.3 ) ;
00255 set_thick_memplot( 0.2*THIK ) ;
00256
00257 /*-- plot labels, if any --*/
00258
00259 xobot = 0.15 ; xotop = 1.27 ; /* set objective size of plot */
00260 yobot = 0.1 ; yotop = 0.95 ;
00261
00262 if( STGOOD(lab_top) ){ yotop -= 0.02 ; yobot -= 0.01 ; }
00263 if( nam_yyy != NULL ){ xotop -= 0.16 ; xobot -= 0.02 ; }
00264
00265 /* x-axis label? */
00266
00267 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00268 if( STGOOD(lab_xxx) )
00269 plotpak_pwritf( 0.5*(xobot+xotop) , yobot-0.06 , lab_xxx , 16 , 0 , 0 ) ;
00270
00271 /* y-axis label? */
00272
00273 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00274 if( STGOOD(lab_yyy) )
00275 plotpak_pwritf( xobot-0.10 , 0.5*(yobot+yotop) , lab_yyy , 16 , 90 , 0 ) ;
00276
00277 /* label at top? */
00278
00279 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00280 if( STGOOD(lab_top) )
00281 plotpak_pwritf( xobot+0.01 , yotop+0.01 , lab_top , 18 , 0 , -2 ) ;
00282
00283 /*-- plot all on same vertical scale --*/
00284
00285 if( yall ){
00286
00287 /* do name labels at right? */
00288
00289 if( nam_yyy != NULL ){
00290 float yv = yotop ; int sz ;
00291
00292 for( jj=0 ; jj < ny ; jj++ ){
00293 if( STGOOD(nam_yyy[jj]) ){
00294 set_color_memplot( ccc[jj%NCLR][0] , ccc[jj%NCLR][1] , ccc[jj%NCLR][2] ) ;
00295 set_thick_memplot( THIK ) ;
00296 plotpak_line( xotop+0.008 , yv , xotop+0.042 , yv ) ;
00297 set_thick_memplot( 0.2*THIK ) ;
00298 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00299 sz = (strlen(nam_yyy[jj]) <= 10) ? 12 : 10 ;
00300 plotpak_pwritf( xotop+0.048 , yv , nam_yyy[jj] , sz , 0 , -1 ) ;
00301 yv -= 0.05 ;
00302 }
00303 }
00304 }
00305
00306 /* plot axes */
00307
00308 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00309 set_thick_memplot( 0.0 ) ;
00310 plotpak_set( xobot,xotop , yobot,yotop , xbot,xtop , ybot,ytop , 1 ) ;
00311 plotpak_perimm( nnax,mmax , nnay,mmay , ilab[(nnax>0)+2*(nnay>0)] ) ;
00312
00313 /* plot data */
00314
00315 for( jj=0 ; jj < ny ; jj++ ){
00316 set_thick_memplot( THIK ) ;
00317 set_color_memplot( ccc[jj%NCLR][0] , ccc[jj%NCLR][1] , ccc[jj%NCLR][2] ) ;
00318
00319 yy = y[jj] ;
00320 for( ii=1 ; ii < nx ; ii++ ){
00321 if( xx[ii-1] < WAY_BIG && xx[ii] < WAY_BIG &&
00322 yy[ii-1] < WAY_BIG && yy[ii] < WAY_BIG )
00323
00324 plotpak_line( xx[ii-1] , yy[ii-1] , xx[ii] , yy[ii] ) ;
00325 }
00326 }
00327 set_thick_memplot( 0.0 ) ;
00328 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00329
00330 } else { /*-- plot each on separate vertical scale --*/
00331
00332 float dyo = (yotop-yobot) / ( (1.0+SY) * ny - SY ) ;
00333
00334 /* name labels at right? */
00335
00336 if( nam_yyy != NULL ){
00337 float yv = yotop ; int sz ;
00338
00339 for( jj=0 ; jj < ny ; jj++ ){
00340 yll = yobot + jj*(1.0+SY)*dyo ; yhh = yll + dyo ;
00341 if( STGOOD(nam_yyy[jj]) ){
00342 set_color_memplot( ccc[jj%NCLR][0] , ccc[jj%NCLR][1] , ccc[jj%NCLR][2] ) ;
00343 set_thick_memplot( 2*THIK ) ;
00344 yv = 0.7*yhh + 0.3*yll ;
00345 plotpak_line( xotop+0.008 , yv , xotop+0.042 , yv ) ;
00346 set_thick_memplot( 0.5*THIK ) ;
00347 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00348 sz = (strlen(nam_yyy[jj]) <= 10) ? 12 : 10 ;
00349 plotpak_pwritf( xotop+0.048 , yv , nam_yyy[jj] , sz , 0 , -1 ) ;
00350 }
00351 }
00352 }
00353
00354 /* data each in its own box */
00355
00356 for( jj=ny-1 ; jj >= 0 ; jj-- ){
00357 yll = yobot + jj*(1.0+SY)*dyo ; yhh = yll + dyo ;
00358 plotpak_set( xobot,xotop , yll,yhh , xbot,xtop , ylo[jj],yhi[jj] , 1 ) ;
00359
00360 if( nnay > 0 ){
00361 nnay = 1 ;
00362 pbot = p10(ylo[jj]) ; ptop = p10(yhi[jj]) ;
00363 if( ptop > pbot && pbot > 0.0 ) ptop = pbot ;
00364 if( ptop != 0.0 ) mmay = floor( (yhi[jj]-ylo[jj]) / ptop + 0.5 ) ;
00365 else mmay = 5 ; /* shouldn't happen */
00366
00367 if( mmay == 1 ) mmay = 5 ;
00368 else if( mmay == 2 ) mmay = 4 ;
00369 else if( mmay == 3 ) mmay = 6 ;
00370 }
00371
00372 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00373 plotpak_perimm( nnax,mmax , nnay,mmay , ilab[(nnax>0)*(jj==0)+2*(nnay>0)] ) ;
00374 if( ylo[jj] < 0.0 && yhi[jj] > 0.0 ){
00375 plotpak_setlin(5) ;
00376 plotpak_line( xbot,0.0 , xtop,0.0 ) ;
00377 plotpak_setlin(1) ;
00378 }
00379
00380 set_color_memplot( ccc[jj%NCLR][0] , ccc[jj%NCLR][1] , ccc[jj%NCLR][2] ) ;
00381 set_thick_memplot( THIK ) ;
00382
00383 yy = y[jj] ;
00384 for( ii=1 ; ii < nx ; ii++ ){
00385 if( xx[ii-1] < WAY_BIG && xx[ii] < WAY_BIG &&
00386 yy[ii-1] < WAY_BIG && yy[ii] < WAY_BIG )
00387
00388 plotpak_line( xx[ii-1] , yy[ii-1] , xx[ii] , yy[ii] ) ;
00389 }
00390 set_thick_memplot( 0.0 ) ;
00391 set_color_memplot( 0.0 , 0.0 , 0.0 ) ;
00392 }
00393 }
00394
00395 /*-- exit, stage left --*/
00396
00397 if( xx != x ) free(xx) ;
00398 free(ylo) ; free(yhi) ;
00399
00400 mp = get_active_memplot() ;
00401 return mp ;
00402 }
|
|
||||||||||||||||||||
|
Definition at line 42 of file plot_ts.c. References mmaxx, nnaxx, xxbot, and xxtop. Referenced by main().
|
|
||||||||||||
|
Definition at line 37 of file plot_ts.c. References a, xpush, and ypush. Referenced by main(), and RT_process_info().
|
|
||||||||||||||||||||
|
Definition at line 47 of file plot_ts.c. References mmayy, nnayy, yybot, and yytop. Referenced by main().
|
Variable Documentation
|
|
Initial value: {
{ 0.0 , 0.0 , 0.0 } ,
{ 0.9 , 0.0 , 0.0 } ,
{ 0.0 , 0.7 , 0.0 } ,
{ 0.0 , 0.0 , 0.9 } ,
}Definition at line 17 of file plot_ts.c. Referenced by init_colors(), plot_ts_addto(), plot_ts_init(), and plot_ts_mem(). |
|
|
Definition at line 26 of file plot_ts.c. Referenced by plot_ts_init(), and plot_ts_mem(). |
|
|
Definition at line 40 of file plot_ts.c. Referenced by plot_ts_mem(), and plot_ts_xfix(). |
|
|
Definition at line 40 of file plot_ts.c. Referenced by plot_ts_mem(), and plot_ts_yfix(). |
|
|
Definition at line 24 of file plot_ts.c. Referenced by init_colors(), plot_ts_addto(), plot_ts_init(), and plot_ts_mem(). |
|
|
Definition at line 40 of file plot_ts.c. Referenced by plot_ts_mem(), and plot_ts_xfix(). |
|
|
Definition at line 40 of file plot_ts.c. Referenced by plot_ts_mem(), and plot_ts_yfix(). |
|
|
Definition at line 32 of file plot_ts.c. Referenced by init_colors(), plot_ts_addto(), plot_ts_init(), and plot_ts_mem(). |
|
|
Definition at line 35 of file plot_ts.c. Referenced by plot_ts_init(), plot_ts_mem(), and plot_ts_xypush(). |
|
|
Definition at line 39 of file plot_ts.c. Referenced by plot_ts_mem(), and plot_ts_xfix(). |
|
|
Definition at line 39 of file plot_ts.c. Referenced by plot_ts_mem(), and plot_ts_xfix(). |
|
|
Definition at line 35 of file plot_ts.c. Referenced by plot_ts_init(), plot_ts_mem(), and plot_ts_xypush(). |
|
|
Definition at line 39 of file plot_ts.c. Referenced by plot_ts_mem(), and plot_ts_yfix(). |
|
|
Definition at line 39 of file plot_ts.c. Referenced by plot_ts_mem(), and plot_ts_yfix(). |