cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Learn how to build custom Python data connectors and further customize JMP’s Data Connector Framework with the Python Data Connector Demo, available now in the JMP Marketplace!
  • See how to create experiments to support product design and ID useful product features. Register for June 12 webinar, 2pm US Eastern Time.

Discussions

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

Multiple Plots and Files using a for loop based on a Group and BY using JSL

Have a JMP table with say 5 cols
ColA is categrical column. ColA has different group of values. Sample data with just 3 groups from Col A

ColA   ColB    ColC    Y      X
  a         x1       p1       9    PQR1
  a         x1       p2      11   PQR2
  b         x2       p1      12   ABC1
  b         x2       p2      14   ABC1
  b         x2       p3      19   ABC2
  c         x1       p3      16   FGT1
  c         x1       p3       22   FGT3

I am trying to create a JSL script which will give me different html files when
I do a oneway plot for each group in Col A ( in this example 3). However, I want each of the plots to be split by the Col B & Col C. (Thus for the case of our data above, when ColA is a we will have two plots based on Col B & Col C, 3 plots when ColA is b and 1 plot when Col A is c)

 

Eventually by goal is to create journal for each ColA group plots and save them individually to html files.

I have written the following script, but unfortunately not getting what I want. I am getting 3 plots pop up,but no plot is having the required number of plots as expected from the By clause for Col B & Col C.
I am getting 3 html files in which I am getting the same plots in each of them.  ( I may need eval/substitute, which I am not very familiar about)

 

dt = Current Data Table();
summarize(colgroup=by(:ColA));

outfile_path = "xxx\";

for (i=1, i<=N items(colgroup),i++, 
 
     idname = Char(colgroup[i]);
     
     outfile  = outfile_path || "_" || idname || ".html";
     
	 grph_obj = dt << Oneway(
	
	         Y( :Y ),
	         X( :X),
	         Means( 1 ),
	         Box Plots( 1 ),
	         Mean Diamonds( 1 ),
	         By(:ColB, :ColC);
	         Where(:ColA == idname);
			 
	
    ) << show window(0);

       Wait(1); 

       jrn_grph = New Window("Report Group Col A", << Journal) ;
	
	   Wait(1);
	
	   grph_obj  << Journal(Freeze All) << show window(0);
	
	    Wait(5);
	
	    jrn_grph << Set page setup(
	        margins( .5, .5, .5, .5 ),
	        scale( .99 ),
	        portrait( 0 ),
	        paper size( "Letter" ) 
        );
	
	    jrn_grph << Save HTML(outfile); 
		
		Close All (Journals, "No Save");


)

 

1 ACCEPTED SOLUTION

Accepted Solutions
ms
Super User (Alumni) ms
Super User (Alumni)

Re: Multiple Plots and Files using a for loop based on a Group and BY using JSL

I have not tested it but I think the code would work as intended with a comma instead of semicolon after By(:ColB, :ColC).

 

 

 

View solution in original post

2 REPLIES 2
ms
Super User (Alumni) ms
Super User (Alumni)

Re: Multiple Plots and Files using a for loop based on a Group and BY using JSL

I have not tested it but I think the code would work as intended with a comma instead of semicolon after By(:ColB, :ColC).

 

 

 

indymitra
Level I

Re: Multiple Plots and Files using a for loop based on a Group and BY using JSL

Wow!!! Perfect!! Yes it works with the comma instead of semicolon.. That's a good thing to know!

Recommended Articles