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
ashwint27
Level III

Column Switcher selection to dynamically label column in data table

I am interested in utilizing the Column Switcher in Graph Builder to where I select a column within the Column Switcher, and it dynamically sets the corresponding data table's column as a "label" column.  It should also "unlabel" any previously labeled data table columns no longer selected within the Column Switcher.  Is there a way this can be accomplished?  I am using JMP version 19.

2 REPLIES 2
txnelson
Super User

Re: Column Switcher selection to dynamically label column in data table

Using a Make Column Switch Handler, you should be able to add the JSL required to make your required changes when the Column Switcher is used.  See the Scripting Index for a description of and example of the Make Column Switch Handler.

Jim
ashwint27
Level III

Re: Column Switcher selection to dynamically label column in data table

Thanks Jim.  I adapted the example script in the Scripting Index for "Make Column Switch Handler" and this code seems to work for what I was looking for:

 
dt = Open( "$SAMPLE_DATA/Process Measurements.jmp" );
gb = Graph Builder( Variables( Y( :Process 1 ) ), Elements( Histogram( Y, Legend( 3 ) ) ) );

dt << Clear Column Selection();

columnSwitcher = gb << Column Switcher(
	:Process 1,
	{:Process 1, :Process 2, :Process 3, :Process 4, :Process 5, :Process 6, :Process 7}
);


dt << Set Label Columns();
dt << Set Label Columns( :Process 1 );


pre = Function( {currentColumn, nextColumn, switcher},
	Print(
		"Before switch: " || (currentColumn << get name) || " >> " || (nextColumn << get name) ||
		" [Column Switcher] current: " || (columnSwitcher << Get Current)
	);
	currentColumn << Label( 1 );
);
post = Function( {previousColumn, currentColumn, switcher},
	Print(
		"After switch: " || (previousColumn << get name) || " >> " || (currentColumn << get name) ||
		" [Column Switcher] current: " || (columnSwitcher << Get Current)
	);
	previousColumn << Label( 0 );
	currentColumn << Label( 1 );
);
handler = columnSwitcher << Make Column Switch Handler( pre, post );
 

Recommended Articles