cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
] />

Discussions

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

Broadcasting Axis Properties Across Process Screening

Hi Folks,

 

Not asking a question here, but prompting a solution I've found for when you want to add axis settings from one chart to many others in the process screening platform. For example, I want to take this customisation I've done on this chart in the top left and add it to all the others:

Ben_BarrIngh_0-1775744094077.png

If you right click the graph axis (say the X) and 'Copy Axis Settings' then run the script below, it will translate those settings to all of your other charts - just let the script now if its an X or Y axis you're changing.

Ben_BarrIngh_1-1775744159254.png

Let me know if there's any questions!

Thanks,
Ben

NamesDefaultToHere(1);

//blank out the variables
axis_type={};
axis={};
cur_rep = Current Report();
// Get the current report

//load in the 'run' expression
run_expr=expr(

// Get all AxisBox elements
axis = cur_rep << XPath("//AxisBox"); //use Xpath to grab the reference to all AxisBoxes in the report.

// Separate into y_axis (odd-numbered) and x_axis (even-numbered) - PScreening makes axisboxes into Y (AxisBox(1), AxisBox(3)) or X (AxisBox(2),AxisBox(4)) that can be distinguished by their number
y_axis = {};
x_axis = {};
//Sort through the 'axis' list and place them in either a Y or X axis list
For(i = 1, i <= N Items(axis), i++,
	If(Mod(i, 2) == 1, // Odd index for Y-axis
		Insert Into(y_axis, axis[i]),
		Insert Into(x_axis, axis[i]) // Even index for X-axis
	)
);

// Apply settings based on user choice
If(axis_type == 1, 
	For(i = 1, i <= N Items(y_axis), i++,
		y_axis[i] << Paste Axis Settings
	),
	For(i = 1, i <= N Items(x_axis), i++,
		x_axis[i] << Paste Axis Settings
	)
););


//Startup with a window to choose the axis
nw=New Window("Choose axis type to update",
OutlineBox("Update Axes in Process Screening",
	TextBox("Choose which axis type to update that you have copied axis settings from"),
	cb=combobox({"Y","X"}),
	ButtonBox("OK",
		axis_type=cb<<get; //set the axis type that is used later on
		run_expr; //run the script contained inside 'run_expr' above
		nw<<closewindow(nosave); //close the window
	))
);

 

“All models are wrong, but some are useful”
1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User

Re: Broadcasting Axis Properties Across Process Screening

You can also do this by broadcasting and using Paste Axis settings. This will change min/max values of the axis which can sometimes be a problem, but you can paste the script first to new script window, drop those settings, copy it again and then broadcast+paste.

-Jarmo

View solution in original post

1 REPLY 1
jthi
Super User

Re: Broadcasting Axis Properties Across Process Screening

You can also do this by broadcasting and using Paste Axis settings. This will change min/max values of the axis which can sometimes be a problem, but you can paste the script first to new script window, drop those settings, copy it again and then broadcast+paste.

-Jarmo

Recommended Articles