Create duplicate heat-maps with different summary statistics in Graph BuilderGiven Big Class and this plot:
Graph Builder(
Size( 574, 613 ),
Graph Spacing( 20 ),
Variables(
X( :sex ),
X( :sex ),
Y( :age ),
Color( :height, Summary Statistic( "Min" ) )
),
Elements( Position( 1, 1 ), Heatmap( X, Y, Legend( 4 ) ) ),
Elements( Position( 2, 1 ), Heatmap( X, Y, Legend( 5 ) ) )
)
Is there a way to make the left plot use the "Mean" summary statistic and the right plot to use "Min"?
I tried adding another Color() specification but it doesn't seem to work in JMP 17.
Data Exploration and VisualizationRe: Create duplicate heat-maps with different summary statistics in Graph BuilderWhat I did was to
- Use Tables=>Summary to create a new table with the mean and min statistics grouped by Sex and Age
- Use Tables=>Stack to stack the mean and min columns
- Run Graph Builder

names default to here(1);
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
// Data table summary
// → Data Table( "Summary of Big Class grouped by age, sex" )
Data Table( "Big Class" ) << Summary(
Group( :age, :sex ),
Mean( :height ),
Min( :height ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "stat" ),
output table name( "Summary of Big Class grouped by age, sex" )
);
// Stack data table
// → Data Table( "Stack of Summary of Big Class grouped by age, sex (Mean, Min)" )
Data Table( "Summary of Big Class grouped by age, sex" ) <<
Stack(
columns( :Mean, :Min ),
Output Table( "Stack of Summary of Big Class grouped by age, sex (Mean, Min)" )
);
Graph Builder(
X Group Edge( "Bottom" ),
Variables( X( :sex ), Y( :age ), Group X( :Label ), Color( :Data ) ),
Elements( Heatmap( X, Y, Legend( 4 ) ) )
);
Re: Create duplicate heat-maps with different summary statistics in Graph BuilderAnother option is to create two graph builder reports and place them side by side in a custom report new window. You might want to re-title the graphs so it is clear that one is colored Min and Max. Here is a simple example:
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
hm1 = expr( dt << Graph Builder(
Size( 235, 613 ),
Show Control Panel( 0 ),
Variables(
X( :sex ),
Y( :age ),
Color( :height, Summary Statistic( "Min" ) )
),
Elements( Heatmap( X, Y, Legend( 1 ) ) ),
));
hm2 = expr( dt << Graph Builder(
Size( 235, 613 ),
Show Control Panel( 0 ),
Variables(
X( :sex ),
Y( :age ),
Color( :height, Summary Statistic( "Max" ) )
),
Elements( Heatmap( X, Y, Legend( 1 ) ) ),
));
new window( "Two Heat Maps",
h list box( hm1, hm2 )
);
Re: Create duplicate heat-maps with different summary statistics in Graph BuilderAt the risk of over-engineering this solution, you could generalize this for a list of stats.
names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
statList = { "Mean", "Median", "Mode", "Min", "Max", "Range", "Median", "Std Dev" };
hm_fxn = function( { STAT },
dt << Graph Builder(
Size( 200, 300 ), // Adjust size based on number of heatmaps
Show Control Panel( 0 ),
Variables(
X( :sex ),
Y( :age ),
Color( :height, Summary Statistic( STAT ) )
),
Elements( Heatmap( X, Y, Legend( 1 ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", OutlineBox,
{Set Title( "Color by " || STAT ), Image Export Display( Normal )}
)
)
)
);
new window( "Heat Maps",
outline box( dt << get name || " Heat Maps",
lub = line up box( n col( 4 ) ) // Adjust n col() for number of heatmaps per row
)
);
for each( { s }, statList,
lub << append( hm_fxn( s ) )
)

Re: Create duplicate heat-maps with different summary statistics in Graph Builder
@BHarris wrote:I tried adding another Color() specification but it doesn't seem to work in JMP 17.
-> add another color
Works with JMP 17 (.2)

dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
Graph Builder(
Size( 574, 613 ),
Summary Statistic( "Median" ),
Graph Spacing( 20 ),
Variables(
X( :sex ),
X( :sex ),
Y( :age ),
Color( :height, Summary Statistic( "N" ) ),
Color( :height, Summary Statistic( "Max" ) )
),
Elements( Position( 1, 1 ), Heatmap( X, Y, Color( 1 ), Legend( 4 ) ) ),
Elements( Position( 2, 1 ), Heatmap( X, Y, Color( 2 ), Legend( 5 ) ) )
);
Re: Create duplicate heat-maps with different summary statistics in Graph BuilderExcellent, that worked! I think I was missing the extra X variable when I added the color spec. It would be nice if GB supported this with the UI, but it already does so much...
Here's the final script I was looking for:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Size( 934, 824 ),
Show Title( 1 ),
Graph Spacing( 20 ),
Variables(
X( :sex ),
X( :sex ),
X( :sex ),
Y( :age ),
Color( :height, Summary Statistic( "Min" ) ),
Color( :height, Summary Statistic( "Mean" ) ),
Color( :height, Summary Statistic( "Max" ) )
),
Elements(
Position( 1, 1 ),
Heatmap( X, Y, Color( 1 ), Legend( 1 ), Label( "Label by Value" ) )
),
Elements(
Position( 2, 1 ),
Heatmap( X, Y, Color( 2 ), Legend( 2 ), Label( "Label by Value" ) )
),
Elements(
Position( 3, 1 ),
Heatmap( X, Y, Color( 3 ), Legend( 3 ), Label( "Label by Value" ) )
),
SendToReport(
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "Age vs. Sex, Colored on Height -- Min, Mean, Max" )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {1, [0], 2, [-1], 3, [-1]} )}
)
)
)