使用页面和换行变量锁定图形生成器的大小有没有办法可以强制图形构建器中的图形保持相同的大小?我有一个分析,打开一个包含换行和页面变量的交互式图形。有一个本地数据过滤器,允许用户按仪器查看数据。但是,并非每个工具都包含页面变量的所有类别中的数据。当用户从本地数据过滤器中选择不同的选项时,我无法弄清楚如何防止图表自动调整大小。例如,此工具仅包含页面变量的一个类别中的数据:

这个数据正是我希望看到的,每个单独的图形(从包装变量)大小到等长。当我从本地数据过滤器中选择一个不同的工具时,一个在页面变量的多个类别中有数据的工具,图表可能变得很难看到:

是否有任何我可以添加到我的脚本中以使每个图形保持相对相同的大小,无论有多少类别的包装或页面变量出现?
Re:使用页面和换行变量锁定Graph Builder的大小哎呀......我没看到样本输出。 但是,要实现这一点,您需要做的就是使您的数据表对于wrap列的每个组合至少有一行。 这是一个例子:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// make the number of graphs different for males but has rows with missing data
dt << select where( :sex == "M" & :age >=16 );
dt:height[dt << get selected rows] = .;
New Window( "filter test",
Data Filter Context Box(
H List Box(
dt << Data Filter(
Local,
Add Filter(
columns( :sex )
),
Mode( Select( 0 ), Show( 1 ), Include( 1 ) )
),
V List Box(
t = Text Box( "0 Rows Excluded" ),
gb =Graph Builder(
Size( 528, 490 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Wrap( :age ) ),
Elements( Points( X, Y, Legend( 27 ) ), Smoother( X, Y, Legend( 28 ) ) )
)
)
)
)
);Re:使用页面和换行变量锁定Graph Builder的大小这是一个基于Big Class数据表的示例,该表执行我认为您想要的操作。

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// make the number of graphs different for males
dt << select where( :sex == "M" & :age >=16 );
dt << delete rows;
New Window( "filter test",
Data Filter Context Box(
H List Box(
dt << Data Filter(
Local,
Add Filter(
columns( :sex )
),
Mode( Select( 0 ), Show( 1 ), Include( 1 ) )
),
V List Box(
t = Text Box( "0 Rows Excluded" ),
gb =Graph Builder(
Size( 528, 490 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Wrap( :age ) ),
Elements( Points( X, Y, Legend( 27 ) ), Smoother( X, Y, Legend( 28 ) ) )
)
)
)
)
);
updatetext = Function( {},
rs = t << Get Row States();
n = 0;
For( ii = 1, ii <= N Rows( rs ), ii++,
If( Excluded( As Row State( rs[ii] ) ),
n
++)
);
t << Set Text( Char( n ) || " Rows Excluded" );
);
rsupdate = Function( {a},
(gb << xpath( "//FrameBox") ) << frame size( 200,150);
);
rsh = t << Make Row State Handler( dt, rsupdate );
updatetext();