cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • New to JMP? Join us Sept. 23-24 for the Early User Edition of Discovery Summit, tailor-made for new users. Register now for free!
  • Use World Cup data to build models, explore spatial relationships, and create informative visualizations in JMP. Register. July 17, 2 pm US Eastern Time.
  • Your voice matters! Tell us how you prefer to receive JMP updates, so we can tailor our communication to your needs. Take short survey.

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