cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
Choose Language Hide Translation Bar
View Original Published Thread

Drive table variable with slider?

BHarris
Level VI

Is there any way to drive a table variable with a slider?

 

E.g. suppose I have this:

 

New Table( "TableVariableSliderExample",
	Add Rows( 100 ),
	New Table Variable( "scaleFactor", 1.5 ),
	New Column( "x",
		Numeric,
		"Continuous",
		Set Values(
			[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
			21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
			39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
			57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
			75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
			93, 94, 95, 96, 97, 98, 99, 100]
		)
	),
	New Column( "Sin",
		Numeric,
		"Continuous",
		Formula( Sin( (:scaleFactor * :x * 6.28) / 100 ) ),
	)
)

... is there any way to create a slider that will modify :scaleFactor and cause the data and any associated plots to live-update?

1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User


Re: Drive table variable with slider?

You can have slider in separate window (the slider window creation could be stored to table script for example)

Names Default To Here(1);

dt = New Table("TableVariableSliderExample",
	Add Rows(100),
	New Table Variable("scaleFactor", 1.5),
	New Column("x",
		Numeric,
		"Continuous",
		Set Values(
			[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
			24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
			45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
			66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
			87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
		)
	),
	New Column("Sin", Numeric, "Continuous", Formula(Sin((:scaleFactor * :x * 6.28) / 100)), )
);


sliderValue = dt << Get Table Variable("scaleFactor");
New Window("Example",
	Panel Box("Slider Box",
		sb = Slider Box(0, 10, sliderValue, 
			dt << Set Table Variable("scaleFactor", sliderValue)
		)
	)
);

or in some cases you might want to build UI which contains the slider AND datatable.

-Jarmo

View solution in original post

3 REPLIES 3
jthi
Super User


Re: Drive table variable with slider?

You can have slider in separate window (the slider window creation could be stored to table script for example)

Names Default To Here(1);

dt = New Table("TableVariableSliderExample",
	Add Rows(100),
	New Table Variable("scaleFactor", 1.5),
	New Column("x",
		Numeric,
		"Continuous",
		Set Values(
			[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
			24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
			45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
			66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
			87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
		)
	),
	New Column("Sin", Numeric, "Continuous", Formula(Sin((:scaleFactor * :x * 6.28) / 100)), )
);


sliderValue = dt << Get Table Variable("scaleFactor");
New Window("Example",
	Panel Box("Slider Box",
		sb = Slider Box(0, 10, sliderValue, 
			dt << Set Table Variable("scaleFactor", sliderValue)
		)
	)
);

or in some cases you might want to build UI which contains the slider AND datatable.

-Jarmo
BHarris
Level VI


Re: Drive table variable with slider?

This is awesome, I didn't realize JMP was capable of this.  Thanks!

 

Just a random follow-on question -- is it possible to draw that slider bar inside of the Graph Builder window?  Or does it have to live in its own window?

jthi
Super User


Re: Drive table variable with slider?

Easiest way is to utilize New Window() and add both graph builder and the sliderbox inside that.

-Jarmo