The issue you are running into is that when you use a By() clause, the option to place the output into x number of rows, treats all of the graphs for a given parameter(column) as one element, regardless of the number of graphs produced by the By() clause.
A work around for this, is to create a new window and to use a LineUpBox() to specify the number of graphs per row
Names Default To Here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
New Window( "Distributions",
Lineup Box( N Col( 3 ),
Distribution(
Arrange in Rows( 3 ),
Continuous Distribution( Column( :height ) ),
by( :age )
)
)
);
Jim