Subversion Repositories wimsdev

Rev

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