cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Don’t miss your chance to experience Discovery Summit Europe at our best available rate! Early bird registration through 31 Oct.
  • Image to Table JMP extension imports single or batch images as data tables. Useful to extract curves from pictures or convert image data to curve data to use in analyses like Functional Data Explorer. Download and install the extension.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
Dyan
Level II

Graph Builder how do i make it detect the variables and insert them in?

 

        NX = 5; //NX NY are to specify the matrix indices for Graph builder
		NY = 5;
			
		If( Is Missing(colX1[i]), NX = NX - 1 );
		If( Is Missing(colX2[i]), NX = NX - 1 );
		If( Is Missing(colX3[i]), NX = NX - 1 );
		If( Is Missing(colX4[i]), NX = NX - 1 );
		
		show(NX);
		
		If( Is Missing(colY1[i]), NY = NY - 1 );
		If( Is Missing(colY2[i]), NY = NY - 1 );
		If( Is Missing(colY3[i]), NY = NY - 1 );
		If( Is Missing(colY4[i]), NY = NY - 1 );
		
		show(NY);
		
		x_vars = {}; // make empty list for x and y variables 
		y_vars = {};
		
		X = colX[i];
		X1 = colX1[i];
		X2 = colX2[i];
		X3 = colX3[i];
		X4 = colX4[i];
		
		Y = colY[i];
		Y1 = colY1[i];
		Y2 = colY2[i];
		Y3 = colY3[i];
		Y4 = colY4[i];
		
		If( !Is Missing(colX[i]), Insert Into( x_vars, X ) ); 
		If(	!Is Missing(colX1[i]), Insert Into( x_vars, X1) );
		If(	!Is Missing(colX2[i]),Insert Into( x_vars, X2) );
		If(	!Is Missing(colX3[i]), Insert Into( x_vars, X3) );
		If(	!Is Missing(colX4[i]), Insert Into( x_vars, X4) ); 

		If( !Is Missing(colY[i]), Insert Into( y_vars, Y) ); 
		If(	!Is Missing(colY1[i]), Insert Into( y_vars, Y1) );
		If(	!Is Missing(colY2[i]), Insert Into( y_vars, Y2) );
		If(	!Is Missing(colY3[i]), Insert Into( y_vars, Y3) );
		If(	!Is Missing(colY4[i]), Insert Into( y_vars, Y4) );  
		
		show(x_vars);
		show(y_vars);

		GB = Current Data Table() << Graph Builder(
			Size( 621, 472 ),
			Variables(
				X(x_vars),
				Y(y_vars)	
			),
			// the for loops is used together with the NX and NY part from above
			For( i = 1, i <= NX, i++,
				For( j = 1, j <= NY , j++,
					If( i == 1 & j == 1,
						Elements(
							Position( i, j ),
							Points( X, Y, Legend( 67 ) ),
							Smoother( X, Y, Legend( 68 ) )
						),
						Elements(
							Position( i, j ),
							Points( X, Y, Legend( 68 + (i - 1) * 5 + (j - 2) ) ),
							Smoother( X, Y, Legend( 69 + (i - 1) * 5 + (j - 2) ) )
						)
					)
				)
			),
			
			SendToReport(
				Dispatch(
					{},
					"Graph",
					ScaleBox,
					{Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
				)
			)
			
		);

Hi all, how can script it in such a way that it detects which of my variables is not empty and adds it in the X( ) and Y( ) of Variables shown below. 

What i have now is shown above where it will detect which is not missing and add it to a list then from that list try to add it into variables shown below how do i continue? 

 

thanks for reading 

 

            Variables(
				X(x_vars),
				Y(y_vars)	
			),

 

 

1 REPLY 1

Re: Graph Builder how do i make it detect the variables and insert them in?

Hi @Dyan ,

Is the following graphic what you want to create? If so, here is a sample script.

111424.png

x_vars = "";
y_vars = "";
		
xlist = {X, X1, X2, X3, X4} = Eval List( {colX[i], colX1[i], colX2[i], colX3[i], colX4[i]} );
ylist = {Y, Y1, Y2, Y3, Y4} = Eval List( {colY[i], colY1[i], colY2[i], colY3[i], colY4[i]} );

For( x_i = 1, x_i <= N Items( xlist ), x_i++,
	If( !Is Empty( xlist[x_i] ),
		x_vars = x_vars || "X(" || Char( Eval Expr( xlist[x_i] ) ) || "),"
	)
);

For( y_i = 1, y_i <= N Items( ylist ), y_i++,
	If( !Is Empty( ylist[y_i] ),
		y_vars = y_vars || "Y(" || Char( Eval Expr( ylist[y_i] ) ) || "),"
	)
);
		
Show( x_vars );
Show( y_vars );

Eval(
	Parse(
		Eval Insert( "\[GB = Current Data Table() << Graph Builder(
				Size( 621, 472 ),
				Variables(  ^x_vars^  ^y_vars^  ), 		
				)
	;]\" )
	)
);

The following discussion page refers to a similar question. https://community.jmp.com/t5/Discussions/JSL-Script-Graph-Builder-to-plot-all-columns-of-a-data-tabl... 

You can also learn about expressions on the page below. https://community.jmp.com/t5/JSL-Cookbook-Archived/Insert-one-expression-into-another-using-Eval-Ins... 

I hope it helps.

Recommended Articles