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

JMP Wish List

We want to hear your ideas for improving JMP. Share them here.
Choose Language Hide Translation Bar

๐Ÿ™ X group: restrict the values on the axis to the respective group

โ˜ cool new feature
โ˜‘ could help many users!

โ˜‘ removes a โ€žbugโ€œ

โ˜ nice to have

โ˜ nobody needs it

 

#myTop10_2022

#myTop10_2024

#myTop10_2025

#myTop10_2026

 

Short:

get rid of all this white space !!!

hogi_1-1702539929955.png

 

Long:

View more...

With nominal values on the x axis and X group activated, the axes of the sub-plots share a common list of values.

All plots show all values.

 

In the example below, X group says that girls are in the left plot and boys are in the right plot.

But due to axis sharing between both subplots, boys and girls show up on the axes of both plots.
This is counter-intuitive and consumes unnecessary space.

With some steps the underlying data table can be changed to generate a plot with girls just on the left and boys on the right:

https://community.jmp.com/t5/Discussions/X-group-gt-adjust-axis/m-p/542262

 

Would be great to have a right click option to directly "disentangle" the axis settings such that each axis gets (just) its own values.

 

similar topics:

- same effect for y axis values and Y group

- different axis scaling for continuous values in different sub-plots.

 

example: Plot with male and female students.

Unfortunately, the plot on the left (F!) lists also all the  male students - and the plot on the right (M!) all the female students !??!

HolgerSp_0-1662655399478.png 

 

more wishes submitted by  hogi_2-1702196401638.png

24 Comments
hogi
Level XIII

@Jeff_Perkinson just mentioned this wish on Discovery Summit 2026 and explained that the desired improvements collide with other features in JMP.

Can we think of a light version of this wish?

Let's take big class - with 18 female and 22 male students.
With the original idea of the wish, the plot will be asymmetric -  with the plot region for the male students slightly larger than for the female students.


But how about a light version -  a plot with same size for male and female students?
With 22 slots available - and just 18 female slots filled?

Going further along this line, we would need something like col score() on the X axis, but not with number as tick labels.
We have to replace them with the names of actual students - separate labels for females and males!

The closest I can get is this:

hogi_0-1790273464809.png

To pass the finish line, I guess we need some support from @XanGregg and his team ...


Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
Graph Builder(
	Transform Column(
		"col score",
		Nominal,
		Formula( Col Score( :name, :sex ) )
	),
	Size( 957, 425 ),
	Show Legend( 0 ),
	Graph Spacing( 4 ),
	Variables(
		X( :col score ),
		Y( :height ),
		Group X( :sex ),
		Color( :sex )
	),
	Elements( Bar( X, Y, Legend( 3 ) ) ),
	SendToReport(
		Dispatch( {}, {:col score}, ScaleBox,
			{Label Row(
				{Automatic Font Size( 0 ), Lower Frame( 1 ),
				Tick Mark Style( "Long Divider" ),
				Tick Mark( Label( "1" ), Label( "1st student's name" ) ),
				Tick Mark( Label( "2" ), Label( "2nd student's name" ) ),
				Tick Mark( Label( "3" ), Label( "3rd student's name" ) ),
				Tick Mark( Label( "4" ), Label( "4 ...." ) )}
			)}
		)
	)
);
XanGregg
Staff

Thanks @hogi . As you've encountered, the light version still has the issue that the group panels ultimately share the exact same axis model with the same labels. Possibly JMP could allow overrides that are tied to the axis display instance instance of the underlying axis model...

Until then, another option with the light version is to put the labels inside the graph, either using labeled content or using a custom marker.

Graph Builder(
	Transform Column( "col score", Nominal, Formula( Col Score( :name, :sex ) ) ),
	Size( 957, 425 ),
	Show Legend( 0 ),
	Graph Spacing( 4 ),
	Variables( X( :col score ), Y( :height ), Group X( :sex ), Color( :sex ) ),
	Elements(
		Bar( X, Y, Legend( 3 ) ),
		Points( X, Y, Legend( 4 ),
			Summary Statistic( "Mean" ),
			Set Shape Expression(
				Expr(
					Function( {this seg, this row, x, y, size, row state},
						Text( Counterclockwise, {x + 0.2, 0.5}, :name[this row] )
					)
				)
			)
		)
	)
);

The axis row of numbers could be hidden, too.

XanGregg_0-1792163252999.png

As far as a "full" (non-light) version goes, the most promising implementation will be within the Page role usage, since it already has support for unlinked axes. The unlinking works now for continuous but not categorical axes. Now that Page mode supports a grid of pages, it can get a similar layout appearance as the other grouping roles, as long as you don't need nesting.

For other group roles, the sharing of axes is more baked in and is often an important feature. That is, you want all the panels to use the same scales to make fair comparisons. However, this thread has shown there are situations where you don't want that sharing. 

hogi
Level XIII

Hi @XanGregg , Shape Expression + CouterClockwise, wonderful trick!

this combines https://community.jmp.com/t5/JMP-Wish-List/X-group-restrict-the-values-on-the-axis-to-the-respective...
and "Jeff-Mode" to something much more useful:

hogi_0-1792222787227.png

 

 

Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
Graph Builder(
	Transform Column( "name_", Nominal, Formula( "x" ) ),
	Transform Column( "col score", Nominal, Formula( Col Score( :name, :sex ) ) ),
	Size( 962, 403 ),
	Show Legend( 0 ),
	Show X Axis( 0 ),
	Show X Axis Title( 0 ),
	Graph Spacing( 4 ),
	Variables(
		X( :col score ),
		Y( :height ),
		Y( :name_ ),
		Group X( :sex ),
		Color( :sex )
	),
	Relative Sizes( "Y", [194 87] ),
	Elements( Position( 1, 1 ), Bar( X, Y, Legend( 3 ) ) ),
	Elements(
		Position( 1, 2 ),
		Points(
			X,
			Y,
			Legend( 6 ),
			Summary Statistic( "Mean" ),
			Set Shape Expression(
				Expr(
					Function( {this seg, this row, x, y, size, row state},
						Text(
							Counterclockwise,
							Right Justified,
							{x + 0.2, 0.5},
							:name[this row]
						)
					)
				)
			)
		)
	),
	SendToReport(
		Dispatch( {}, {:col score}, ScaleBox,
			{Label Row( {Lower Frame( 1 ), Tick Mark Style( "Long Divider" )} )}
		),
		Dispatch( {}, {:name_}, ScaleBox,
			{Min( -0.45625 ), Max( 0.5 ), Label Row(
				Tick Mark Style( "Short Divider" )
			)}
		),
		Dispatch( {}, {:name_}, TextEditBox, {Set Text( "name" )} ),
		Dispatch( {}, "", AxisBox( 3 ), {Set Width( 21 )} )
	)
);



hogi
Level XIII

Important: This plot is out of reach for 90+x % of the JMP users
- and even the remaining 10-x % percent will share their joy once this light mode gets directly available in JMP.

any chance to feel this joy?

page mode:
I enjoy the flexibility of page mode a lot! with the grid option and  the non-linked axes. 
The disadvantage of page mode is the waste of space. Maybe provide a "compact" page mode with removed spaces between the "pages"