Rev 11353 | Rev 11356 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
11344 | bpr | 1 | !if $wims_read_parm!=slib_header |
2 | !goto proc |
||
3 | !endif |
||
4 | |||
11353 | bpr | 5 | slib_parms=4\ |
6 | ,[min_x, max_y,size_x,size_y] de la fenêtre in real coord and in pixels\ |
||
7 | ,3- or 5- vector for [d1,q1,mediane,q2,d2] or [q1,mediane,q2] \ |
||
8 | ,3- or 5-vector with m (mobile) or f (fixed) at each position\ |
||
9 | ,option:number="", raw anstype stick |
||
10 | slib_comment=<ul><li>option <span class="tt">number</span> is useful in case of several boxplots \ |
||
11 | in the same html page, by default nothing</li>\ |
||
12 | <li>option <span class="tt">raw</span> gives the javascript code</li>\ |
||
13 | <li>option <span class="tt">anstype</span> gives the code necessary to use with anstype <span class="tt">jsxgraph</span></li>\ |
||
14 | <li>option <span class="tt">stick</span> gives the sticks to show, by default 1.</li>\</ul> |
||
11344 | bpr | 15 | |
11353 | bpr | 16 | slib_out=Box plot. Some points can be fixed or mobile. |
11344 | bpr | 17 | slib_author=Bernadette, Perrin-Riou |
18 | slib_title=Box plot |
||
19 | slib_example=[0,10],[4,6,7],,number=1\ |
||
11353 | bpr | 20 | [0,10,500,200],[4,6,7],[m,f],number=2\ |
11344 | bpr | 21 | [0,10],[1,4,6,7,8],,number=3\ |
22 | [10,100],[21,54,66,77,89],[m,f,f,m,f],number=4 stick=10\ |
||
11350 | bpr | 23 | [0,10],[1,2,6],,raw |
11344 | bpr | 24 | |
25 | !exit |
||
26 | |||
27 | :proc |
||
28 | slib_out= |
||
11353 | bpr | 29 | !!!warning the name of the object |
30 | !distribute item $wims_read_parm into slib_range,slib_p,slib_fix,slib_opt |
||
11344 | bpr | 31 | |
32 | !set slib_fix=!declosing $slib_fix |
||
33 | !set slib_range=!declosing $slib_range |
||
11352 | bpr | 34 | !distribute item $slib_range into slib_xmin,slib_xmax,slib_xsize,slib_ysize |
35 | !default slib_xsize=300 |
||
36 | !default slib_ysize=100 |
||
37 | !set slib_stick=!getopt stick in $slib_opt |
||
11344 | bpr | 38 | !default slib_stick=1 |
11352 | bpr | 39 | !set slib_p=!declosing $slib_p |
40 | !set slib_p=!sort numeric item $slib_p |
||
41 | !set slib_ch=!itemcnt $slib_p |
||
42 | !if $slib_ch=3 |
||
43 | !distribute item $slib_p into slib_q1,slib_med,slib_q3 |
||
11344 | bpr | 44 | !else |
11352 | bpr | 45 | !distribute item $slib_p into slib_dec1,slib_q1,slib_med,slib_q3,slib_dec9 |
11344 | bpr | 46 | !endif |
11352 | bpr | 47 | !set slib_opt=!declosing $slib_opt |
48 | !set slib_nb=!getopt number in $slib_opt |
||
11353 | bpr | 49 | !if !=$empty |
11352 | bpr | 50 | slib_nb=_$slib_nb |
11344 | bpr | 51 | !endif |
11352 | bpr | 52 | !set slib_brd=brd$slib_nb |
53 | !set slib_jx=jxgbox$slib_nb |
||
11353 | bpr | 54 | |
55 | !! the following definition of $slib_jxr and $slib_jxv is cruxial when use with the |
||
56 | !! anstype jsxgraph. Do not change it. |
||
57 | !set slib_jxr=$(slib_jx)_rep |
||
58 | !set slib_jxv=$(slib_jx)_var |
||
11352 | bpr | 59 | !set slib_h=3 |
60 | !set slib_h1=$[$slib_h-1] |
||
61 | !set slib_h2=$[$slib_h+1] |
||
62 | !set slib_h3=$[$slib_h-2] |
||
63 | !set slib_h4=$[$slib_h+2] |
||
64 | slib_script1=var $slib_brd = JXG.JSXGraph.initBoard('$slib_jx', {\ |
||
65 | axis:false,boundingbox: [$slib_xmin, 7, $slib_xmax, -1], grid:true, shownavigation:false});\ |
||
11344 | bpr | 66 | xaxis = $slib_brd.create('axis', [[0, 0], [1, 0]], {\ |
67 | ticks: {ticksDistance: $slib_stick, insertTicks: false}});\ |
||
68 | yaxis = $slib_brd.create('axis', [[0, 0], [0, 3]],{\ |
||
69 | ticks: {ticksDistance:2, insertTicks: false,visible:false},visible:false}); |
||
11350 | bpr | 70 | !set slib_font=face:'o', name:'', size:2, showInfobox: true |
11352 | bpr | 71 | !for slib_i=1 to $slib_ch |
11344 | bpr | 72 | !if $(slib_fix[$slib_i])=f |
73 | !set slib_fixme=,fixed:true,visible:false |
||
74 | !else |
||
75 | !reset slib_fixme |
||
76 | !endif |
||
11355 | bpr | 77 | !if raw notwordof $slib_opt and anstype notwordof $slib_opt |
11350 | bpr | 78 | !set slib_script1=$slib_script1\ |
11353 | bpr | 79 | $(slib_jxr)$slib_i=$slib_brd.create('point',[$(slib_p[$slib_i]),$slib_h], {$slib_font$slib_fixme}); |
11350 | bpr | 80 | !else |
81 | !set slib_script1=$slib_script1\ |
||
11353 | bpr | 82 | $(slib_jxr)$slib_i=$slib_brd.create('point',$(slib_jxv)$slib_i, {$slib_font$slib_fixme}); |
11350 | bpr | 83 | |
84 | !endif |
||
11344 | bpr | 85 | !next |
11352 | bpr | 86 | !if $slib_ch=5 |
11344 | bpr | 87 | !set slib_scriptmove=$slib_brd.on('move', function(){\ |
11353 | bpr | 88 | $(slib_jxr)1.moveTo([Math.min($(slib_jxr)1.X(),$(slib_jxr)2.X()), $slib_h]);\ |
89 | $(slib_jxr)2.moveTo([Math.min($(slib_jxr)2.X(),$(slib_jxr)3.X()), $slib_h]);\ |
||
90 | $(slib_jxr)3.moveTo([Math.min($(slib_jxr)3.X(),$(slib_jxr)4.X()), $slib_h]);\ |
||
91 | $(slib_jxr)4.moveTo([Math.min($(slib_jxr)4.X(),$(slib_jxr)5.X()), $slib_h]);\ |
||
92 | $(slib_jxr)5.moveTo([Math.max($(slib_jxr)4.X(),$(slib_jxr)5.X()), $slib_h]); |
||
11344 | bpr | 93 | |
94 | !else |
||
95 | !set slib_scriptmove=$slib_brd.on('move', function(){\ |
||
11353 | bpr | 96 | $(slib_jxr)1.moveTo([Math.min($(slib_jxr)1.X(),$(slib_jxr)2.X()), $slib_h]);\ |
97 | $(slib_jxr)2.moveTo([Math.min($(slib_jxr)2.X(),$(slib_jxr)3.X()), $slib_h]);\ |
||
98 | $(slib_jxr)3.moveTo([$(slib_jxr)3.X(), $slib_h]); |
||
11344 | bpr | 99 | !endif |
100 | |||
11352 | bpr | 101 | !set slib_scriptmove=$slib_scriptmove }); |
102 | !if $slib_ch=5 |
||
11344 | bpr | 103 | !set slib_script2=\ |
11353 | bpr | 104 | $(slib_jx)_pt1m=$slib_brd.create('point',[function(){return $(slib_jxr)1.X()},$slib_h2], {$slib_font,visible:false});\ |
105 | $(slib_jx)_pt1p=$slib_brd.create('point',[function(){return $(slib_jxr)1.X()},$slib_h1], {$slib_font,visible:false});\ |
||
106 | $(slib_jx)_pt5m=$slib_brd.create('point',[function(){return $(slib_jxr)5.X()},$slib_h2], {$slib_font,visible:false});\ |
||
107 | $(slib_jx)_pt5p=$slib_brd.create('point',[function(){return $(slib_jxr)5.X()},$slib_h1], {$slib_font,visible:false});\ |
||
108 | $(slib_jx)_pt2m=$slib_brd.create('point',[function(){return $(slib_jxr)2.X()},$slib_h4], {$slib_font,visible:false});\ |
||
109 | $(slib_jx)_pt2p=$slib_brd.create('point',[function(){return $(slib_jxr)2.X()},$slib_h3], {$slib_font,visible:false});\ |
||
110 | $(slib_jx)_pt3m=$slib_brd.create('point',[function(){return $(slib_jxr)3.X()},$slib_h4], {$slib_font,visible:false});\ |
||
111 | $(slib_jx)_pt3p=$slib_brd.create('point',[function(){return $(slib_jxr)3.X()},$slib_h3], {$slib_font,visible:false});\ |
||
112 | $(slib_jx)_pt4m=$slib_brd.create('point',[function(){return $(slib_jxr)4.X()},$slib_h4], {$slib_font,visible:false});\ |
||
113 | $(slib_jx)_pt4p=$slib_brd.create('point',[function(){return $(slib_jxr)4.X()},$slib_h3], {$slib_font,visible:false});\ |
||
11344 | bpr | 114 | |
11352 | bpr | 115 | !set slib_script3=\ |
11353 | bpr | 116 | $slib_brd.create('line',[$(slib_jxr)1,$(slib_jxr)2],{straightFirst:false, straightLast:false});\ |
117 | $slib_brd.create('line',[$(slib_jxr)4,$(slib_jxr)5],{straightFirst:false, straightLast:false});\ |
||
118 | $slib_brd.create('line',[$(slib_jx)_pt1m,$(slib_jx)_pt1p],{straightFirst:false, straightLast:false});\ |
||
119 | $slib_brd.create('line',[$(slib_jx)_pt5m,$(slib_jx)_pt5p],{straightFirst:false, straightLast:false});\ |
||
120 | $slib_brd.create('line',[$(slib_jx)_pt2m,$(slib_jx)_pt2p],{straightFirst:false, straightLast:false});\ |
||
121 | $slib_brd.create('line',[$(slib_jx)_pt3m,$(slib_jx)_pt3p],{straightFirst:false, straightLast:false});\ |
||
122 | $slib_brd.create('line',[$(slib_jx)_pt4m,$(slib_jx)_pt4p],{straightFirst:false, straightLast:false});\ |
||
123 | $slib_brd.create('line',[$(slib_jx)_pt2m,$(slib_jx)_pt4m],{straightFirst:false, straightLast:false});\ |
||
124 | $slib_brd.create('line',[$(slib_jx)_pt2p,$(slib_jx)_pt4p],{straightFirst:false, straightLast:false}); |
||
11352 | bpr | 125 | |
11344 | bpr | 126 | !else |
127 | !set slib_script2=\ |
||
11353 | bpr | 128 | $(slib_jx)_pt1m=$slib_brd.create('point',[function(){return $(slib_jxr)1.X()},$slib_h4], {$slib_font,visible:false});\ |
129 | $(slib_jx)_pt1p=$slib_brd.create('point',[function(){return $(slib_jxr)1.X()},$slib_h3], {$slib_font,visible:false});\ |
||
130 | $(slib_jx)_pt2m=$slib_brd.create('point',[function(){return $(slib_jxr)2.X()},$slib_h4], {$slib_font,visible:false});\ |
||
131 | $(slib_jx)_pt2p=$slib_brd.create('point',[function(){return $(slib_jxr)2.X()},$slib_h3], {$slib_font,visible:false});\ |
||
132 | $(slib_jx)_pt3m=$slib_brd.create('point',[function(){return $(slib_jxr)3.X()},$slib_h4], {$slib_font,visible:false});\ |
||
133 | $(slib_jx)_pt3p=$slib_brd.create('point',[function(){return $(slib_jxr)3.X()},$slib_h3], {$slib_font,visible:false});\ |
||
11344 | bpr | 134 | |
135 | !set slib_script3=\ |
||
11353 | bpr | 136 | $slib_brd.create('line',[$(slib_jx)_pt1m,$(slib_jx)_pt1p],{straightFirst:false, straightLast:false});\ |
137 | $slib_brd.create('line',[$(slib_jx)_pt2m,$(slib_jx)_pt2p],{straightFirst:false, straightLast:false});\ |
||
138 | $slib_brd.create('line',[$(slib_jx)_pt3m,$(slib_jx)_pt3p],{straightFirst:false, straightLast:false});\ |
||
139 | $slib_brd.create('line',[$(slib_jx)_pt1m,$(slib_jx)_pt3m],{straightFirst:false, straightLast:false});\ |
||
140 | $slib_brd.create('line',[$(slib_jx)_pt1p,$(slib_jx)_pt3p],{straightFirst:false, straightLast:false}); |
||
11344 | bpr | 141 | !endif |
142 | |||
143 | !set slib_out=$slib_script1\ |
||
144 | $slib_scriptmove\ |
||
145 | $slib_script2\ |
||
146 | $slib_script3 |
||
147 | |||
11353 | bpr | 148 | !if anstype iswordof $slib_opt |
11352 | bpr | 149 | slib_out=$slib_jx $slib_brd Y=$slib_h\ |
11344 | bpr | 150 | $slib_out\ |
11353 | bpr | 151 | $(slib_jxv)1=[$(slib_p[1]),$slib_h] |
11352 | bpr | 152 | !for slib_i=2 to $slib_ch |
11353 | bpr | 153 | slib_out=$slib_out;$(slib_jxv)$slib_i=[$(slib_p[$slib_i]),$slib_h] |
11344 | bpr | 154 | !next |
11353 | bpr | 155 | !else |
156 | !if raw notwordof $slib_opt |
||
157 | !readproc slib/geo2D/jsxgraph $slib_jx,$(slib_xsize) x $(slib_ysize),$slib_out |
||
158 | !endif |
||
11344 | bpr | 159 | !endif |