asking for a friend/colleague:
With the current version of Jmp, is there an easy way to generate a split grouped probability plot?
I can generate such a plot via Graph Builder, but I have to implement a hand-made functionality which re-generates the Transform column once the user selects different columns or different entries in the Local Data Filter - and it's extremely slow!
Accepting that the graph won't be as interactive as what a Jmp user is used from Graph Builder, one can use Live Distribution/Compare Groups - with a By variable. It can be much faster than Graph Builder - but there are cases where you have to wait literally "hours" till the plot shows up [see below].
The original report doesn't look like expected - but with several commands to the report (*) the plot gets almost as nice as in Minitab.
The benefit compared to the Graph Builder approach: more Distributions/scales to select from
The disadvantages compared to Minitab:
- not stable
- very slow
Open( "$SAMPLE_DATA/Cars.jmp" );Graph Builder(
Transform Column(
"CDF",
Formula(
Col Rank(
:Wt,
:Doors,
:Year
) / (Col Number(
:Wt,
:Doors,
:Year
) + 1)
)
),
Variables( X( :Wt ), Y( :CDF ), Group Y( :Year ), Overlay( :Doors ) ),
Elements( Line Of Fit( X, Y, ), Points( X, Y, Legend( 14 ) ) )
);
myld = Life Distribution(
Perspective( Compare Groups ),
Y( :Wt ),
Grouping( :Doors ),
Confidence Interval Method( Wald ),
Select Distribution( Distribution, Normal ),
Select Scale( Normal ),
<< Show Statistics( 0 ),
By( :Year)
);
(myld << XPath("(//OutlineBox[text()='Statistics'])")) << Visibility( "Collapse" );
(myld << xpath("//OutlineBox[text()='Individual Group']")) << Visibility( "Collapse" );
((myld << xpath ("//RadioBox")) << parent) << Visibility( "Collapse" );
(myld << xpath("//OutlineBox[text()='Compare Distribution']//IfBox"))<< Visibility( "Collapse" );
//(myld << xpath("//OutlineBox[text()='Compare Distribution']")) <<Set Title( "" );
// current Report()[ListBox(1)] << Set Horizontal( 1 );
(myld << xpath("//OutlineBox")) <<Set Title( "" );
myABS = (myld << xpath ("//OutlineBox//AxisBox"));
Transform Each({ABList},myABs[1::Nitems(myABs)-1],ABList[2]) << Label Row(
{Automatic Tick Marks( 0 ), Show Major Ticks( 0 ),
Show Minor Ticks( 0 ), Show Major Labels( 0 )} );
myTEBs = (myld << xpath ("//OutlineBox//TextEditBox"));
Transform Each({TEBList},myTEBs[1::Nitems(myTEBs)-1],TEBList[2])<<Set Text( "" ) ;