cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Try the Materials Informatics Toolkit, which is designed to easily handle SMILES data. This and other helpful add-ins are available in the JMP® Marketplace
Choose Language Hide Translation Bar
Neo
Neo
Level VI

Can I get elements in "Group Y" to "Y" in Graph Builder?

The script below generates data similar to my actual data and plots the data in a layout similar to what I would like. 

Names Default To Here(1);
clear log ();
dt = Open("$SAMPLE_DATA/Probe.jmp");
// Combine columns 1
Data Table( "Probe" ) << Combine Columns(columns( :Lot ID, :Wafer Number ),	Column Name( "LotWafer" ),	Delimiter( "." ));
// Combine columns 2
Data Table( "Probe" ) << Combine Columns(columns( :Die X, :Die Y ), Column Name( "[X,Y]" ), Delimiter( "," ));
// Delete columns
Data Table( "Probe" ) << Delete Columns( :Lot ID, :Wafer Number, :Die X, :Die Y );
grouped_cols = dt << get column group( "Responses" );

// Transpose data table // → Data Table( "Transpose of Probe" )
Data Table( "Probe" ) << Transpose(	columns (grouped_cols),	By( :LotWafer, :Process, :Start Time ),
	Label( :Site ),	Output Table( "Transpose of Probe" ));
close (dt, no save);
dt = Current Data Table (); 
Data Table( "Transpose of Probe" ) 
<< New Column("Mean", Numeric, "Continuous", Format("Best", 12 ), Formula(Mean( :"1"n, :"2"n, :"3"n, :"4"n, :"5"n )));
dt = Graph Builder(
	Size( 570, 458 ),
	Show Control Panel( 0 ),
	Variables(X(:LotWafer, Order By( :Start Time, Ascending, Order Statistic( "Mean" ) )),
		     Y( :Mean ), Group Y(:Label,	Order By( :Process, Ascending, Order Statistic( "Mean" ) ))	),
	Elements( Points( X, Y, Legend( 23 ) ) ),
	Local Data Filter(Conditional, Add Filter(columns( :Label ),Where( :Label == {"30D1_7X100_IL_12V", "30D1_7X100_IL_25V"} ),
			Display( :Label, Find( Set Text( "" ) ) ))),
	SendToReport(Dispatch({},"Mean",ScaleBox,{Min( -0.0000336 ), Max( 0.00004544 ),
			Inc( 0.00001 ), Minor Ticks( 1 )})));

However, I would like the Process name mentioned on the Group Y (i.e. I do not want Group Y section to say, "Label ordered by Process"). As I select more labels on the local data filter (conditional), I would like the Group Y and Y to be populated accordingly. 

 

Even better would be to have the measured parameter "Labels" on the left side "Y" axis while the "Process" names in the "Group Y" and they need to respond to my selection on the local data filter.

 

How to achieve this in JSL?

 

When it's too good to be true, it's neither
1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User

Re: Can I get elements in "Group Y" to "Y" in Graph Builder?

Drop the process to this location

jthi_0-1694108805365.png

 

-Jarmo

View solution in original post

5 REPLIES 5
jthi
Super User

Re: Can I get elements in "Group Y" to "Y" in Graph Builder?

You can hide the group title

jthi_0-1694100319481.png

Might be a good idea to remove min/max from your graph builder script to allow Y-axis to scale as it wants to

-Jarmo
Neo
Neo
Level VI

Re: Can I get elements in "Group Y" to "Y" in Graph Builder?

@jthi . The graph builder part of the script was generated after interactively doing the layout using the Graph Builder. Hence the min/max.

I do not need to hide the group title. I want it to be shown as "New" and "Old" separately (in place of ordered by Process). How to di this in JSL?

When it's too good to be true, it's neither
jthi
Super User

Re: Can I get elements in "Group Y" to "Y" in Graph Builder?

Drop the process to this location

jthi_0-1694108805365.png

 

-Jarmo
hogi
Level XII

Re: Can I get elements in "Group Y" to "Y" in Graph Builder?

Nice idea, use a Data Filter as a Column Switcher with modeling Type Multiple Response  


To move the Y Group labels to the left right click on the Y Group and select Y Group Edge/Left:

hogi_0-1694120650519.png

To order the entries by Process, the order column has to be numeric.


OK to put the Process label on top?
Alternatively, you could use different colors to distinguish between old and new value.

hogi_1-1694121024146.png

 

 

:Process << Set Property( "Value Order", {Custom Order( {"Old", "New"} )} );
New Column( "Process2", Set Each Value(If(:Process=="Old",1,2)) );
Graph Builder(
	Show Y Axis Title( 0 ),
	Y Group Edge( "Left" ),
	Variables(
		X( :LotWafer, Order By( :Start Time, Ascending, Order Statistic( "Mean" ) ) ),
		Y( :Mean ),
		Group X( :Process ),
		Group Y(
			:Label,
			Order By( :Process 2, Ascending, Order Statistic( "Mean" ) ),
			Show Title( 0 )
		),
		Overlay( :Process )
	),
	Elements( Points( X, Y, Legend( 23 ) ) ),
	Local Data Filter(
		Conditional,
		Add Filter(
			columns( :Label ),
			Where( :Label == {"30D1_7X100_IL_12V", "30D2_7X20_BDV"}  ),
			Display( :Label, N Items( 15 ), Find( Set Text( "" ) ) )
		)
	)
)

 

 

hogi
Level XII

Re: Can I get elements in "Group Y" to "Y" in Graph Builder?

alternative approach, with std. BigClass  (with sex = Process):

 

Create an new Label with "_process" appended
perhaps an additional subplot as an indicator for the "process"

 

hogi_1-1694156431041.png

 

Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
	Size( 437, 413 ),
	Graph Spacing( 4 ),
	Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
	Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);

dtStacked =  dt << Stack(
	columns( :height, :weight ),
	Source Label Column( "Label" ),
	Stacked Data Column( "Data" ),
	Output Table( "Untitled 3.jmp" )
);

dtStacked << New Column( "myLabel",Character,Formula( :Label || "_" || :sex ));

dtStacked << Graph Builder(
	Size( 494, 335 ),
	Show Control Panel( 0 ),
	Show Y Axis Title( 0 ),
	Set α Level( 0.01 ),
	Y Group Edge( "Left" ),
	Summary Statistic( "Median" ),
	Graph Spacing( 4 ),
	Variables(
		X( :name ),
		X( :sex ),
		Y( :Data ),
		Group Y( :myLabel ),
		Overlay( :sex ),
		Color( :sex )
	),
	Relative Sizes( "X", [240 56] ),
	Elements( Position( 1, 1 ), Points( X, Y, Legend( 37 ) ) ),
	Elements( Position( 2, 1 ), Heatmap( X, Legend( 31 ) ) ),
	Local Data Filter( Add Filter( columns( :Label ), Where( :Label == "weight" ) ) )
)