I would really appreciate it if you would have the chance to use it that you would somehow mention the source and my name.
Here you go, a quincunx version in JMP (written in JMP 8, please don't run using JMP 7, the reports are messed-up on that version.):
//===================================
Clear Globals();
/************************************** DECLARE VARIABLES****************************/
//////////////////////////////////////////////////////////////////////////////////////
samples = 1000;
jval = 20;
kval = 5;
a = -kval;
b = jval;
droppoint = 0;
val = droppoint ;
x = 1;
y = 0;
SUM_BOUNCE = 0;
looping = 1;
PIN_LEVELS = jval;
PIN_WIDTH = kval * 2 - 1;
SAMPLES = samples;
m = 1;
n = 1;
o = 1;
loop2 = 0;
/********************************EXPRESSION******************************************/
//////////////////////////////////////////////////////////////////////////////////////
dist_com = Expr(
dist = tb << Distribution(
Stack( 1 ),
Continuous Distribution(
Column( :VALUE ),
Quantiles( 0 ),
Moments( 0 ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Outlier Box Plot( 0 )
),
SendToReport(
Dispatch( {"VALUE"}, "1", ScaleBox, {Min( -6 ), Max( 6 )} ),
Dispatch(
{"VALUE"},
"Distrib Histogram",
FrameBox,
{Frame Size( 500, 200 ), DispatchSeg(
HistSeg( 1 ),
{Fill Color( "Medium Dark Green" ), Histogram Color( 20 )}
)}
)
)
);
dist << minimize window;
CC = Control Chart(
Sample Label( Empty() ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :VALUE, Individual Measurement ),
SendToReport(
Dispatch( {}, "Control Chart", OutlineBox, Set Title( "Consistency" ) ),
Dispatch(
{},
"Individual Measurement of VALUE",
OutlineBox,
Set Title( "Position" )
),
Dispatch(
{"Individual Measurement of VALUE"},
"2",
ScaleBox,
{Format( "Fixed Dec", 12, 1 ), Min( -10 ), Max( 10 )}
),
Dispatch(
{"Individual Measurement of VALUE"},
"1",
ScaleBox,
{Min( 0 ), Max( 1000 ), Inc( 5 ), Rotated Labels( 1 )}
),
Dispatch(
{"Individual Measurement of VALUE"},
"IR Chart",
FrameBox,
Frame Size( 500, 200 )
),
Dispatch(
{"Individual Measurement of VALUE"},
"IR Chart",
FrameBox( 2 ),
Frame Size( 70, 200 )
)
)
);
CC << minimize window;
CCR = CC << report;
distr = dist << report;
cc << minimize window;
dist<< minimize window;
wind << Show Window;
wind[List Box( 4 )] << append( distr[framebox( 1 )] );
wind[List Box( 4 )] << append( ccr[framebox( 1 )] );
CC<
);
/************************************** CREATE TABLE*********************************/
//////////////////////////////////////////////////////////////////////////////////////
tb = New Table( "BOUNCE RECORD", Add Rows( SAMPLES ) );
tb << minimize window();
For( m = 1, m <= PIN_LEVELS - 2, m++,
tb << New Column( "PIN" || Char( m ), Nominal )
);
col = Column( 1 ) << set name( "VALUE" );
col << get name;
/************************************** CREATE WINDOW********************************/
//////////////////////////////////////////////////////////////////////////////////////
wind = New Window( "Basic Statistics Concept",
VL = V List Box(
Graph Box(
title( "Center, Spread, Shape, Consistency" ),
X Scale( -kval - 1, kval + 1 ),
Y Scale( 0, jval ),
framesize( 500, 200 ),
Handle(droppoint ,jval,wait(2);droppoint = x; val = droppoint );
Fill Color( "RED" ),
For( b = 0, b <= jval - 1, b++,
For( a = -kval, a <= kval, a++,
If(
Mod( b, 2 ) == 1, Circle( {a + 0.5, b}, .1, "FILL" ),
Circle( {a, b}, .1, "FILL" ),
)
)
),
Fill Color( "GREEN" ),
r = Circle( {val, jval - y - 0.9}, .5, "FILL" )
)
)
);
//976,8000
////48,468
/************************************ EXTRA FUNCTIONS********************************/
//////////////////////////////////////////////////////////////////////////////////////
wind[axisbox( 1 )] << delete;
Wait( 0.1 );
loop = 0;
For( loop = 0, loop <= samples, loop++,
x = 1;
y = 0;
If( loop == 1,
Wait( 0 );
Eval( dist_com );
,
If( loop > 1,
//dist << close window;
//cc << close window;
wind[framebox( 3 )] << delete;
wind[framebox( 2 )] << delete;
Eval( dist_com );
)
);
wind << Show Window;
For( y = 0, y < jval - 2, y++,
Wait( 0.05 );
wind << reshow;
rand = Random Binomial( 1, 0.5 );
If( rand == 0,
val = val + 0.5,
val = val - 0.5
);
valbounce = If( rand == 0, -1, 1 );
Column( y + 2 )[loop + 1] = valbounce;
SUM_BOUNCE = SUM_BOUNCE + (valbounce / 2);
);
Column( 1 )[loop + 1] = SUM_BOUNCE;
loop2 = 0;
//wind[framebox(2)]<
drop = SUM_BOUNCE;
wind << reshow();
SUM_BOUNCE = 0;
);
//==================================
No comments:
Post a Comment