Subscribe Bookmark RSS Feed

How do I plot a x-y dataset with changing spec limits ?

ad

Occasional Contributor

Joined:

Dec 21, 2016

Hi All, 

I have a (x,y) dataset where the value of y column as well as column properties "Spec Limits" of y column changes with each value of x. 

 

For example:

For x = x1, y = y1 & Spec limit (Upper Spec Limit = a1, Target = b1, Lower Spec Limit = c1) 

For x = x2, y = y2 & Spec limit (Upper Spec Limit = a2, Target = b2, Lower Spec Limit = c2) 

For x = x3, y = y3 & Spec limit (Upper Spec Limit = a3, Target = b3, Lower Spec Limit = c3) 

 

and so on. Under "Column Properties" -->  "Spec Limits" , we can select only one set of values for (Upper Spec Limit, Target, Lower Spec Limit) but not multiple. 

 

Obviously, the y spec graph reference lines on the plot will not be a flat horizontal line but will change according to the (Upper Spec Limit, Target, Lower Spec Limit. 

 

How can I generate this kind of plot using JMP ?

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
txnelson

Super User

Joined:

Jun 22, 2012

Solution

Here is a sample script that you can use as a model to accomplish what you want

Names default to here(1);

// Create a sample data table
dt = New Table( "Moving USL and LSL",
	Add Rows( 43 ),
	New Column( "SO2",
		Numeric,
		"Continuous",
		Format( "Fixed Dec", 5, 3 ),
		Set Values(
			[0.061, 0.052, 0.025, 0.043, 0.057, 0.027, 0.063, 0.02, 0.044, 0.061,
			0.069, 0.025, 0.056, 0.052, 0.031, 0.076, 0.053, 0.06, 0.056, 0.066,
			0.021, 0.05, 0.019, 0.002, 0.042, 0.095, 0.054, 0.089, 0.015, 0.083,
			0.025, 0.041, 0.011, 0.068, 0.001, 0.044, 0.018, 0.093, 0.012, 0.029,
			0.091, 0.053, 0.074]
		)
	),
	New Column( "LSL",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Formula( :SO2 - Col Std Dev( :SO2 ) )
	),
	New Column( "USL",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Formula( :SO2 + Col Std Dev( :SO2 ) ),
		Set Selected
	)
);
cc = dt << Control Chart(
	Sample Size( 1 ),
	KSigma( 3 ),
	Chart Col( :SO2, Run Chart( Show Center Line( 0 ) ) )
);

// determine the x and y points to be plotted
xmat=USLmat=LSLmat=[];
for(i=1,i<=n rows(dt),i++,
	xmat=v concat(xmat,i-.5,i+.5);
	USLmat=v concat(USLmat,dt:USL[i],dt:USL[i]);
	LSLmat=v concat(LSLmat,dt:LSL[i],dt:LSL[i]);
);

// add the USL
frame = report(cc)[FrameBox(1)];
frame<< add graphics script(
Pen Color( "Blue" );line style("solid");
	line(xmat,USLmat)
);
// add the LSL
frame<< add graphics script(
Pen Color( "Green" );line style("solid");
	line(xmat,LSLmat)
);
Jim
4 REPLIES
txnelson

Super User

Joined:

Jun 22, 2012

Solution

Here is a sample script that you can use as a model to accomplish what you want

Names default to here(1);

// Create a sample data table
dt = New Table( "Moving USL and LSL",
	Add Rows( 43 ),
	New Column( "SO2",
		Numeric,
		"Continuous",
		Format( "Fixed Dec", 5, 3 ),
		Set Values(
			[0.061, 0.052, 0.025, 0.043, 0.057, 0.027, 0.063, 0.02, 0.044, 0.061,
			0.069, 0.025, 0.056, 0.052, 0.031, 0.076, 0.053, 0.06, 0.056, 0.066,
			0.021, 0.05, 0.019, 0.002, 0.042, 0.095, 0.054, 0.089, 0.015, 0.083,
			0.025, 0.041, 0.011, 0.068, 0.001, 0.044, 0.018, 0.093, 0.012, 0.029,
			0.091, 0.053, 0.074]
		)
	),
	New Column( "LSL",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Formula( :SO2 - Col Std Dev( :SO2 ) )
	),
	New Column( "USL",
		Numeric,
		"Continuous",
		Format( "Best", 12 ),
		Formula( :SO2 + Col Std Dev( :SO2 ) ),
		Set Selected
	)
);
cc = dt << Control Chart(
	Sample Size( 1 ),
	KSigma( 3 ),
	Chart Col( :SO2, Run Chart( Show Center Line( 0 ) ) )
);

// determine the x and y points to be plotted
xmat=USLmat=LSLmat=[];
for(i=1,i<=n rows(dt),i++,
	xmat=v concat(xmat,i-.5,i+.5);
	USLmat=v concat(USLmat,dt:USL[i],dt:USL[i]);
	LSLmat=v concat(LSLmat,dt:LSL[i],dt:LSL[i]);
);

// add the USL
frame = report(cc)[FrameBox(1)];
frame<< add graphics script(
Pen Color( "Blue" );line style("solid");
	line(xmat,USLmat)
);
// add the LSL
frame<< add graphics script(
Pen Color( "Green" );line style("solid");
	line(xmat,LSLmat)
);
Jim
ad

Occasional Contributor

Joined:

Dec 21, 2016

Hi Jim, 

 

Great ! Thank you so much for your detailed solution. I appreciate it. I need to first understand your detailed code.

 

Let me try to implement it and see if it is what I want. I'll let you know if I have more questions.

 

Many Thanks,

Adi

M_Anderson

Staff

Joined:

Nov 21, 2014

Could you provide some detail on the application or driving question? In general, spec changes are a big deal and changes to them tend to be pretty rare (industry dependent, of course). What are you trying to communicate?

Best

M
ad

Occasional Contributor

Joined:

Dec 21, 2016

Hi M, 

 

You are right, mostly we do not need moving targets or specs in most scenarios.

 

In my case, the x- variable is such that when it is changed the y-target is changed and hence the associated specs (USL, LSL) needs to be changed. I think there are many scenarios where this happens in the semiconductor industry. 

 

Best Regards,
Ad