使用頁面和換行變量鎖定圖形生成器的大小有沒有辦法可以強製圖形生成器中的圖形保持相同的大小? 我有一個分析,打開一個交互式圖表,其中包括換行變量和頁面變量。 有一個本地數據過濾器,允許用戶通過儀器查看數據。 然而,並非每個工具都包含頁面變量所有類別的數據。 當用戶從本地數據過濾器中選擇不同的選項時,我不知道如何防止圖表自動調整大小。 例如,該儀器僅具有頁面變量類別之一的數據:

這些數據正是我想要看到的,每個單獨的圖形(來自包裝變量)的大小都是等軸測的。 當我從本地數據過濾器中選擇不同的工具(該工具具有頁面變量的多個類別中的數據)時,圖表可能會變得難以查看:

我是否可以在腳本中添加任何內容,以便無論出現多少個換行或頁面變量類別,每個圖形都保持相對相同的大小?
大規模定制回复:使用頁面和換行變量鎖定圖形生成器的大小哎呀...我沒有看到示例輸出。但要實現這一點,您所要做的就是使數據表中的換行列的每種組合至少有一行。這是一個例子:
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 ) ) )
)
)
)
)
);回复:使用頁面和換行變量鎖定圖形生成器的大小這是一個基於 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();