cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Browse apps to extend the software in the new JMP Marketplace
Choose Language Hide Translation Bar
MRB3855
Super User

How do I change the Local Data Filter conditional order within Graph Builder

Good day: I'll see if I can clearly state my question.  I have a plot created via Graph Builder in JMP v 14.1.  I've added a Local Data Filter (with 9 variables) so I can visualize certain subset(s) of the data.  I've chosen the "conditional" option in the Local data Filter as well.  So far, so good.  But, I'm struggling to see how the conditional ordering can be changed.  I see that I can re-order the list of filter variables (drag-n-drop), but that has little to no affect on the ordering of how the conditioning is carried out.  There is a number in brackets (e.g., [3] ) proceeding each Local data Filter variable to show the conditioning order.  I see no way to change these in any kind of purposeful way.  For example, no matter how they are ordered in the list, the variable with "[4]" in front of it must be chosen before the variable that has "[7]" in front of it or else the conditioning doesn't work as it should. For ease of use, I would like to match the variable conditioning order to the variable order as listed. How can I make this happen? As far as I can tell, there is nothing in the script that can I can change to influence Conditioning Order. And, I've tried starting from scratch and adding variables to the Local Data Filter in my desired conditioning order, only to find that the conditioning order changes somewhere along the way...and I've no clue how that happens! 

 

Thanks Folks

Mark

1 ACCEPTED SOLUTION

Accepted Solutions
Jeff_Perkinson
Community Manager Community Manager

Re: How do I change the Local Data Filter conditional order within Graph Builder

The conditional order is determined by the order the columns are used in the filter, not the order they are displayed. If you're working interactively that's the order you make selections in each column. If you're working JSL, it's the order they appear in the script.

 

Interactively, after adding all of your columns to the filter and turning on the Conditional option, the first column you make a selection in will be marked with a [1] and the other columns will show only values within that selection. The next column you make a seleciton in will be marked with [2], and so on. You can reset the order by clicking the Clear button at the top of the data filter and then starting your selections again.

 

ConditionalDataFilter.gif

If you're doing this with JSL, it's the order they appear in Where() clauses.

 

dt = Open( "$SAMPLE_DATA\Car Physical Data.jmp" );


dt << Graph Builder(
	Size( 527, 575 ),
	Show Control Panel( 0 ),
	Variables( X( :Horsepower ), Y( :Gas Tank Size ) ),
	Elements( Points( X, Y, Legend( 86 ) ), Smoother( X, Y, Legend( 87 ) ) ),
	Local Data Filter(
		Conditional,
		Add Filter(
			columns( :Model, :Country, :Type ),
			Where( :Type == "Small" ),
			Where( :Country == "Japan" ),
			Display( :Model, Size( 170, 240 ), List Display ),
			Display( :Type, Size( 170, 80 ), List Display )
		)
	)
);

dt << Graph Builder(
	Size( 527, 575 ),
	Show Control Panel( 0 ),
	Variables( X( :Horsepower ), Y( :Gas Tank Size ) ),
	Elements( Points( X, Y, Legend( 92 ) ), Smoother( X, Y, Legend( 93 ) ) ),
	Local Data Filter(
		Conditional,
		Add Filter(
			columns( :Model, :Country, :Type ),
			Where( :Country == "Japan" ),
			Where( :Model == "Dodge Colt" ),
			Where( :Type == "Small" ),
			Display( :Model, Size( 170, 240 ), List Display ),
			Display( :Type, Size( 170, 80 ), List Display )
		)
	)
);

 

-Jeff

View solution in original post

10 REPLIES 10

Re: How do I change the Local Data Filter conditional order within Graph Builder

Hi Mark,

just to be sure I understood correctly. Using local data filter with many variables doesn't allow you to change the order using conditional filtering? You tried to change the order but the numbers stay the same in the filter boxes?

Hmm,  that's interesting. I'm using JMP 14.1. as well, using Big Class Families sample data to show what I did.

 

1. Adding local data filter - set conditional filtering - then change order of set filter.

Initial local data filterInitial local data filterConditional filter with selection to see hierarchyConditional filter with selection to see hierarchyChanged ordering per drag and dropChanged ordering per drag and drop

You can see conditional filter changes as I believe you are expecting it as well. 

The second option is to create a local data filter in the order you want the variables to appear and after that set the conditional filtering. 

 

Well from what you said, this is not working for you, correct? Or am I missing something? 

 

Another option is saving the script into a script window. You'll get something like this: 

Graph Builder(
	Size( 535, 638 ),
	Show Control Panel( 0 ),
	Variables( X( :weight ), Y( :height ) ),
	Elements( Points( X, Y, Legend( 31 ) ), Smoother( X, Y, Legend( 32 ) ) ),
	Local Data Filter(
		Conditional,
		Add Filter(
			columns( :sex, :age, :name ),
			Where( :sex == "M" ),
			Where( :age == 14 ),
			Where( :name == "ALFRED" ),
			Display( :age, Size( 202, 114 ), List Display ),
			Display( :name, Size( 202, 285 ), List Display )
		)
	)
);

 

Changing the order of the Where(.. statements will change the conditional filtering order as well, or at least should :)

 

Please let us know if this is working for you as it does for me. 

Thanks,

Martin

 

 

/****NeverStopLearning****/
MRB3855
Super User

Re: How do I change the Local Data Filter conditional order within Graph Builder

Hi Martin: Thanks much, your reply is very helpful. Following your steps, exactly, I was able to reproduce what you did with the Big Class Families. The key appears to be associated not only with the solution as how you describe it, but it also seems to make a difference if a particular selection is made for a given variable or whether a given variable is left alone so that it just sort of responds to the previous conditions passively just prior to reordering via drag and drop.  For example, using your Big Class Families data set, I've managed to do this with ease (see pic).  And this kind of thing is exactly what I'm trying to avoid and fix!  And for 9-11 variables, that seems near impossible...BigClassFamilies2.PNG

 

MRB3855
Super User

Re: How do I change the Local Data Filter conditional order within Graph Builder

Hi Martin: I *think* I've found the solution. And, if so it is as easy fix (turns out).  If the list order and the conditioning order get out of sync, then just put them (drag and drop) in the desired list order that you want the conditional order to be, then toggle the Conditional option off then back on again. It seems that action resets the conditional order to match the list order.

 

Mark

Re: How do I change the Local Data Filter conditional order within Graph Builder

Hi Mark,

glad you found a workaround. However, for me the ordering will just be changed automatically, so I cannot have the [1] at the end, it will change the [1] to [3] automatically. May you want to check with our technical support to see if this differs from "normal" behaviour or that I'm just to dumb to reproduce ;)

Best

Martin

/****NeverStopLearning****/
MRB3855
Super User

Re: How do I change the Local Data Filter conditional order within Graph Builder

Hi Martin I *think* you can reproduce it if you do the following.

1. With Conditioning off, create the Local Data Filter as you showed me (ordered sex/age/name) 

2. Then choose Conditional.

3. Then select, from "name", ALFRED.

4. then select from "sex", M (only choice)

5. then select from "age", 14 (only choice)

You will then see(I think)  [2] sex, [3] age, [1] name. They are now numbered in the order you selected them, not in list order. Then move (drag and drop) sex to the bottom.

You will see [3] age, [1] name, [2] sex. So, the list order changed...but the numbers didn't. It seems to matter what your intial selections are. And if this has happened, the only way I see to fix it is to toggle the Conditional option (I think).

 

Mark

 

Jeff_Perkinson
Community Manager Community Manager

Re: How do I change the Local Data Filter conditional order within Graph Builder

The conditional order is determined by the order the columns are used in the filter, not the order they are displayed. If you're working interactively that's the order you make selections in each column. If you're working JSL, it's the order they appear in the script.

 

Interactively, after adding all of your columns to the filter and turning on the Conditional option, the first column you make a selection in will be marked with a [1] and the other columns will show only values within that selection. The next column you make a seleciton in will be marked with [2], and so on. You can reset the order by clicking the Clear button at the top of the data filter and then starting your selections again.

 

ConditionalDataFilter.gif

If you're doing this with JSL, it's the order they appear in Where() clauses.

 

dt = Open( "$SAMPLE_DATA\Car Physical Data.jmp" );


dt << Graph Builder(
	Size( 527, 575 ),
	Show Control Panel( 0 ),
	Variables( X( :Horsepower ), Y( :Gas Tank Size ) ),
	Elements( Points( X, Y, Legend( 86 ) ), Smoother( X, Y, Legend( 87 ) ) ),
	Local Data Filter(
		Conditional,
		Add Filter(
			columns( :Model, :Country, :Type ),
			Where( :Type == "Small" ),
			Where( :Country == "Japan" ),
			Display( :Model, Size( 170, 240 ), List Display ),
			Display( :Type, Size( 170, 80 ), List Display )
		)
	)
);

dt << Graph Builder(
	Size( 527, 575 ),
	Show Control Panel( 0 ),
	Variables( X( :Horsepower ), Y( :Gas Tank Size ) ),
	Elements( Points( X, Y, Legend( 92 ) ), Smoother( X, Y, Legend( 93 ) ) ),
	Local Data Filter(
		Conditional,
		Add Filter(
			columns( :Model, :Country, :Type ),
			Where( :Country == "Japan" ),
			Where( :Model == "Dodge Colt" ),
			Where( :Type == "Small" ),
			Display( :Model, Size( 170, 240 ), List Display ),
			Display( :Type, Size( 170, 80 ), List Display )
		)
	)
);

 

-Jeff
MRB3855
Super User

Re: How do I change the Local Data Filter conditional order within Graph Builder

Thanks Jeff, now I see how it works! It all makes sense now. And thanks to both you and Martin for your quick and learned responses; your insight has been very helpful.

Mark   

hogi
Level XII

Re: How do I change the Local Data Filter conditional order within Graph Builder

This conversation is very useful to understand the behavior of "conditional" data filter settings

Is there a possibility to define the sequence of "conditional" without restricting the specific data filter to an entry?
something like this

 

Graph Builder(
	Size( 535, 638 ),
	Show Control Panel( 0 ),
	Variables( X( :weight ), Y( :height ) ),
	Elements( Points( X, Y, Legend( 31 ) ), Smoother( X, Y, Legend( 32 ) ) ),
	Local Data Filter(
		Conditional,
		Add Filter(
			columns( :sex, :age, :name ),
			Where( :sex == ANYTHING),
			Where( :age == 14 ),
			Where( :name == "ALFRED" ),
			Display( :age, Size( 202, 114 ), List Display ),
			Display( :name, Size( 202, 285 ), List Display )
		)
	)
);
Jeff_Perkinson
Community Manager Community Manager

Re: How do I change the Local Data Filter conditional order within Graph Builder

I'm not sure I understand what you are trying to get? Can you explain further?

-Jeff