Ability to set format on cumulative percents in pareto graph.
I'm currently working on a pareto refresh. By default, I've used a percent format on both the marker labels and on the cumulative percent axis. Let me know if you need more control (such as setting the decimal places). Thanks.
Interestingly, I have recreated the Pareto in Graph Builder (with initial work done by Scott Wise)
Using Failure.jmp data set from sample data, I created a script to make the plot look like this:
This gave me control of all axes using Graph Builder capabilities and flexibility to do more visual exploration and annotation of the data.
Script Below:
Names Default To Here( 1 ); dt = Current Data Table(); dt << Sort( Replace Table, By( :N ), Order( Descending ) ); nc = New Column( "Cumulative %", "Numeric", "Continuous", Format( "Percent" ), Formula( Col Cumulative Sum( :N ) / Col Sum( :N ) ) ); nc << Label( 1 ); Graph Builder( Size( 653, 571 ), Show Control Panel( 0 ), Show Legend( 0 ), Variables( X( :failure, Order By( :N, Descending, Order Statistic( "Mean" ) ) ), Y( :N ), Y( :Cumulative %, Position( 1 ), Side( "Right" ) ) ), Elements( Bar( X, Y( 1 ), Legend( 12 ), Label( "Label by Row" ) ), Line( X, Y( 2 ), Legend( 18 ) ), Points( X, Y( 2 ), Legend( 19 ), Jitter( "None" ) ) ), SendToReport( Dispatch( {}, "Cumulative %", ScaleBox, {Min( 0.4 ), Max( 1.02672605790646 ), Inc( 0.1 ), Minor Ticks( 0 )} ), Dispatch( {}, "400", ScaleBox, {Legend Model( 12, Properties( 0, {Fill Color( 20 )}, Item ID( "N", 1 ) ), Properties( -1, {Line Color( 0 )}, Item ID( "Cumulative %", 1 ) ), Properties( -1, {Line Color( 0 ), Fill Color( 0 )}, Item ID( "Cumulative %", 1 ) ) ), Legend Model( 18, Properties( 0, {Line Color( 0 )}, Item ID( "Cumulative %", 1 ) ) )} ), Dispatch( {}, "graph title", TextEditBox, {Set Text( "Pareto" )} ), Dispatch( {}, "X title", TextEditBox, {Set Text( "Failure" )} ), Dispatch( {}, "Graph Builder", FrameBox, {DispatchSeg( BarSeg( 1 ), Set Width Proportion( 1 ) ), DispatchSeg( Marker Seg( 1 ), label offset( {2, 7, 12}, {3, 6, 12}, {4, 4, 12}, {5, 5, 13} ) )} ), Dispatch( {}, "400", LegendBox, {Legend Position( {12, [0], 18, [1], 19, [-1]} ), Position( {0, 1, -1} ) } ) ) );
Notice that I had to create a column to get cum %.
This was my workaround to be able to do what Wendy mentioned.
Much as we love Graph Builder, of course Pareto Plot has a lot more specificity for the task in hand (like 'Combine Causes'). Not sure of the scope of the 'refresh', but generally more control, and more consistency between platforms, helps the user. I see that the right hand AxisBox() is 'locked' and I know it has to move in tandem with the left one. But it would be nice to be able to toggle the locking between left and right, so that one can control (and modify) the right axis too. And, as perhaps already implied by @Chris_Kirchberg, the horizontal CatAxisBox() is extremely limited compared to Graph Builder. And I would certainly vote for the ability to control the number of decimal places on 'Label Cum Percent Points'.
So by 'refresh', I really mean rewrite the whole thing from scratch. I do intend to provide the ability to not synchronize the y-axes so you would have full control over the right-hand axis. Also, the CatAxisBox is gone. It now uses the standard axis just like Graph Builder.The chart is composed of standard segs like BarSeg, LineSeg and TextSeg which can be customized like GB as well. I plan on adding the ability to subgroup the causes either in a stacked or side-by-side layout. This will allow the user to create Paynter charts.
Once I'm a little further along and have gotten more Product Management feedback, I'll start a Confluence page for the feature. In the meantime, if you have suggestions for improvements you can comment here or send them to me directly. Great to see that there is interest in updating the Pareto. Thanks.
Nice!
FWIW, and at the risk of stating the obvious, this kind of thing will really help to deliver on the 'Statistical Discovery for All' promise that Jon mentioned at the kick-off. There's so much value in doing so-called 'simple' things well . . .