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

plot something like R chart but showing positive and negative value instead of range.

i have a table with 200 parameters/columns and 300 parts/row. Each part has reading taken twice, namely T0 and T48. i would like to plot something like reading@T48 - reading@T0 for all 200 parameters in y- axis, x-axis is the part 1 to part 300. i am thinking to use R chart since it does the range = absolute( reading@T48 - reading@T0 ). Is this something ready available in JMP or should i do a math for 200 parameters & plot it using graph builder? 

 

would like to get input from experienced folks in this forum.

 

this is JMP17. 

9 REPLIES 9
mlo1
Level IV

Re: plot something like R chart but showing positive and negative value instead of range.

txnelson
Super User

Re: plot something like R chart but showing positive and negative value instead of range.

I believe that you can get your needs met by using Graph Builder  Are either of these charts what you might want

txnelson_0-1729685870127.pngtxnelson_1-1729685894033.png

 

Jim
hogi
Level XII

Re: plot something like R chart but showing positive and negative value instead of range.

To get all the calculations done by JMP, you can stack the columns and use the column names / labels as wrap.

To calcualte the abs (diff(T0, T48)), you can use the range aggregation of Graph Builder:

hogi_0-1729691191316.png

 

hogi_1-1729692043436.png

 

 

dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );

// use site 1&2 as T0 and T48
mySubset = dt << Subset(
	Filtered Rows( :SITE == 1 | :SITE == 2 ),
	Selected columns only( 0 )
);

// stack all columns to get a single column for the plot - and a label for the wrap
mySubset <<
Stack(
	columns( Column Group( "Processes" ) )
);

// use range to calculate the abs(diff))
Graph Builder(
	Variables( X( :Wafer ID in lot ID ), Y( :Processes ), Wrap( :Label ) ),
	Elements( Bar( X, Y, Summary Statistic( "Range" ) ) ),
	SendToReport(
		Dispatch( {}, "Processes", TextEditBox, {Set Text( "abs(diff)" )} )
	)
);

 

 

Re: plot something like R chart but showing positive and negative value instead of range.

 

is there a setting to show positive and negative reading rather than "Range"?

Elements( Bar( X, Y, Summary Statistic( "Range" ) ) ),

 

i was looking in the control chart builder and the JSL code for control chart.

hogi
Level XII

Re: plot something like R chart but showing positive and negative value instead of range.

Summary Statistics / Range is the easiest approach to get the " range = absolute( reading@T48 - reading@T0 )".

 

If you prefer to calculate the actual difference - without abs() , you have to calculate it via a column formula.

Re: plot something like R chart but showing positive and negative value instead of range.

CumulativeMean2_0-1729843353167.png

This chart is what i need. it shows positive and negative reading of reading@T48 - reading@T0. How do you get the reading of the y-axis (DIFF)? are you adding one more column for each parameter in the data table to do the math? 

My data table has 200 tables.

I am aware of the R chart, it has the range, but it is only the positive reading. Here is what I did. Top is X bar chart, but it lists out the reading@T48 & reading@T0.

I am thinking what is the best way to get the diff of 200 parameters putting into something like R-chart but with positive and negative reading on Y-axis. Is there any setting on R-chart might be able to accomplish this or do I need some JSL in R-chart to achieve this?

CumulativeMean2_1-1729843915008.png

 

txnelson
Super User

Re: plot something like R chart but showing positive and negative value instead of range.

While a Control Chart has some natural features that may seem to be the direction you want to go, because it is designed to be used for Statistical Process Control as defined by Walter Shewhart, it is not a generic graphing tool, but rather, it conforms to the rules laid out to properly create a Control, i.e. Shewhart, Chart.  Graph Builder, is the tool that I believe you should use.

 

If you only had a few columns/parameters, one could easily use JMP's interactive capabilities to produce the chart you indicated you want

txnelson_0-1729850744946.png

That becomes very time consuming when you have the 200 parameter/columns you say you have.  However, once again JMP, through JSL, has the ability to take the steps required to create the chart for one parameter/column and apply it to all of your 200 parameter/columns.

The first step towards this needs to be the calculation of the T48-T0 values.  The issue here is that as described, your data has 300 parts, each with a T0 and a T48 reading.  I am assuming both readings are in the same column for each measured parameter.  And if this is the case, are the T0 and T48 readings found one after another, or can the T0 reading for a given part be on lets say row 1 of the data table, and then the T48 reading for that part be just somewhere else in the data table?  Another question that needs to be answered is whether there are any T48 readings for a part that has a T0 reading?  Both of these questions answers will help determine the easiest and most efficient way to calculate the T48-T0 difference that is needed to generate the chart you want.

If the data always has both a T0 and T48 reading for all parts, and the readings are always T0 followed immediately by the T48 reading, then all that needs to do is to go directly to Graph Builder and it can be setup to generate the desired chart.  Graph Builder allows for the creation of a virtual column that a formula can be used to generate the required Difference value.

If the data are not in the correct order, or if there are missing T48 readings, additional JSL will have to be put in place to come up with the Difference value.

If you can answer those questions, and if possible could you provide a sample of your data with just a few parts and only 2 or 3 parameters I would be able to provide you with a more complete example of what you need. 

Jim
hogi
Level XII

Re: plot something like R chart but showing positive and negative value instead of range.

you have to calculate it via a column formula.

 

hogi_0-1729872361372.png

 

dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );

// use site 1&2 as T0 and T48
mySubset = dt << Subset(
	Filtered Rows( :SITE == 1 | :SITE == 2 ),
	Selected columns only( 0 )
);

// stack all columns to get a single column for the plot - and a label for the wrap
stacked  = mySubset   <<
Stack(
	columns( Column Group( "Processes" ) )
);

mySplit = stacked << Split(
	Split By( :SITE ),
	Split( :Processes ),
	Group( :Wafer ID in lot ID, :Label ),
	Output Table( "Split of Untitled by SITE" )
);

mySplit <<
New Formula Column(
	Operation( Category( "Combine" ), "Difference (reverse order)" ),
	Columns( :"1"n, :"2"n )
);

mySplit << Graph Builder(
	Variables( X( :Wafer ID in lot ID ), Y( :"2-1"n ), Wrap( :Label, Size( 13 ) ) ),
	Elements( Bar( X, Y, Legend( 6 ) ) ),
	Local Data Filter(
		Add Filter(
			columns( :Label ),
			Where( :Label == {"A1", "A2N", "A2P1", "CAP", "DE_H1", "DEM1", "DEP1", "EP2"} ),
		)
	)
);

Re: plot something like R chart but showing positive and negative value instead of range.

the code works. i follow the exact steps of code but use the data table, formula and chart builder to generate the plots.  i have to spend some time to debug the JSL code with my data table.

 

CumulativeMean2_0-1730194042703.png