Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- JMP User Community
- :
- Discussions
- :
- How do I plot a x-y dataset with changing spec limits ?

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

Highlighted

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Dec 21, 2016 6:22 PM
(5945 views)

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

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 4

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

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

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

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

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

Best

M

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

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

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