cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Check out the JMP® Marketplace featured Capability Explorer add-in
Choose Language Hide Translation Bar
yummy
Level I

Normalization of multiple graphs in one chart

Hello!

 

I use JMP a trial version.

 

I want to normalize many different distributions in same range. Specifically, There are so many distributions with different LSL, USL, mean, and std. I want to normalize all these things for LSL=-1, USL=1, mean=0. Somebody help me. thx:)

6 REPLIES 6
txnelson
Super User

Re: Normalization of multiple graphs in one chart

The chart you want is available in the Process Capability platform

     Analyze=>Quality and Process=>Process Capability

cap.PNG

Jim
Dan2
Level I

Re: Normalization of multiple graphs in one chart

Can I also see this graph not by row direction but column direction? I would like to see above graph 90 degree rotated.
txnelson
Super User

Re: Normalization of multiple graphs in one chart

The Process Capability platform does not have such an option.  However, with some manipulation, I was able to get the Graph Builder platform to create the below chart

proc.JPG

Jim
Dan2
Level I

Re: Normalization of multiple graphs in one chart

Thanks txnelson! Could you please let me know how you manipulated for this??
txnelson
Super User

Re: Normalization of multiple graphs in one chart

Below is the script that produces the output.  Everything in the script was actually first created by running JMP interactively and then having JMP kick out the JSL that produced the output step.  The only one step that was not produced this way, was the step that normalized the data.  That is a piece of JSL that was written from scratch.

names default to here(1);

// Open the data table.  In this case it is from the sample data
// distributed with JMP
dt=open("$sample_data/semiconductor capability.jmp");

// For this illustration only use some of the columns 
// subset data
varList = {:NPN1, :PNP1, :PNP2, :NPN2, :PNP3, :IVP1, :PNP4, :NPN3, :IVP2, :NPN4, :SIT1,
		:INM1, :INM2, :VPM3, :PMS1, :SPM1, :NPN5, :EP2, :ZD6, :PBA, :PLG, :CAP,
		:PBA3, :PLG2, :PNP5, :NPN6, :PNP7, :NPN7, :PNP8, :IVP3, :IVP4, :IVP5, :IVP6,
		:PNP9, :NPN8, :NPN9, :IVP7, :NPN10, :N_1, :PBA1, :WPR1, :B10, :PLY10,
		:VBE210, :VTN210, :VTP210, :SIT2, :SIT3, :INV2, :INV3, :INV4, :INV5, :FST1,
		:FST2, :RES1, :RES2, :PNM1, :PPM1, :FNM1, :FPM1, :FST3, :FST4, :RES3, :RES4,
		:A1, :B1, :A2N, :A2P, :A2P1, :IVP8, :IVP9, :DE_H1, :NF_H1, :ESM1, :ESM2,
		:ESP1, :YFU1, :PBA2, :PBB1, :LYA1, :LYB1, :DEM1, :DEP1, :NFM1, :PLY1, :VDP1,
		:VDP2, :SNW1, :RSP2, :PLY2, :RSP1, :VDP3, :PBL1, :PLG1, :VDP4, :SPW1, :VIA1,
		:INM3, :VPM5, :INM4, :VPM7, :M1_M1, :M2_M2, :P1_P1, :E2A1, :E2B1, :NPN11,
		:IVP10, :PNP10, :INM5, :VPM8, :INM6, :VPM10, :N2A1, :N2B1, :NM_L1, :P2A1,
		:P2B1, :PM_L1};
	
dtSub = dt << subset( columns( eval(varList), selected rows(0)));

// Pass through all of the data to normalize the values
// Normalize the the data by dividing the distance from the target to its value by the size of the 
// target - spec limit
For( theCol = 1, theCol <= N Cols( dtSub ), theCol++,
	specs = Column( dtSub, Char( varList[theCol] ) ) << get property( "spec limits" );
	target = specs["Target"];
	lowerSize = -1 * (target - specs["LSL"]);
	upperSize = specs["USL"] - target;
	For( theRow = 1, theRow <= N Rows( dtSub ), theRow++,
		If( Column( dtSub, Char( varList[theCol] ) )[theRow] < target,
			Column( dtSub, Char( varList[theCol] ) )[theRow] = (target - Column( dtSub, Char( varList[theCol] ) )[theRow]) / lowerSize,
			Column( dtSub, Char( varList[theCol] ) )[theRow] = (Column( dtSub, Char( varList[theCol] ) )[theRow] - target) / upperSize
		)
	);
);

// Stack the data to put in the form to use Graph Builder for histograms
dtStack = dtSub <<
Stack(
	columns(
		eval( varList )
	),
	Source Label Column( "Label" ),
	Stacked Data Column( "Data" ));

// Run Graph Builder
dtStack << Graph Builder(
	Size( 1032, 464 ),
	Show Control Panel( 0 ),
	Variables( X( :Label ), Y( :Data ), Overlay( :Label ) ),
	Elements( Box Plot( X, Y, Legend( 5 ) ) ),
	SendToReport(
		Dispatch(
			{},
			"Data",
			ScaleBox,
			{Format( "Best", 12 ), Min( -5.34675407881179 ), Max( 6.35855742858709 ),
			Inc( 1 ), Minor Ticks( 1 ), Add Ref Line( 1, "Dashed", "Black", "", 1 ),
			Add Ref Line( -1, "Dashed", "Black", "", 1 )}
		)
	)
);

gr1.JPG

Jim

RE: Normalization of multiple graphs in one chart

Thank you, Mr. Yeom.  JMP Korea Team 1 will contact you. Thank you.