利用可能なすべてのスペースを埋めるためにGBを拡張する方法は?いくつかのディスプレイ ボックスを含む 3 列の Line Up ボックスがあり、2 番目の行として、内部に Graph Builder がある Unlineup ボックスがあるとします。
次のスクリプトを実行すると、例が表示されます。
dt = New Table( "DEMO",
Add Rows( 10 ),
New Column( "Category",
Character,
"Nominal",
Set Values( {"A", "A", "A", "A", "A", "B", "B", "B", "B", "B"} )
),
New Column( "X",
Character,
"Nominal",
Set Values( {"AA", "AD", "AC", "AD", "AC", "BD", "BF", "BF", "BD", "BS"} )
),
New Column( "Y_veryLongName_toMake_Tabulat_Large",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [12, 32, 42, 23, 21, 12, 34, 53, 23, 12] )
)
);
tab = dt << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table(
Analysis Columns( :Y_veryLongName_toMake_Tabulat_Large ),
Statistics( Sum, Mean )
),
Row Table( Grouping Columns( :Category, :X ) )
)
);
gb = dt << Graph Builder(
//Size( 528, 464 ),
Show Control Panel( 0 ),
Variables(
X( :Category ),
X( :X, Position( 1 ) ),
Y( :Y_veryLongName_toMake_Tabulat_Large ),
Color( :Category )
),
Elements( Points( X( 1 ), X( 2 ), Y, Legend( 9 ) ) )
);
rtab = tab << Report;
rgb = gb << Report;
lb = LineUp Box(NCol(3), rtab, rtab, rtab, Unlineup Box(rgb) );
nw = New Window("DEMO", Show Menu(0), Show Toolbars(0), lb);したがって、これは次のようになります。

ここで、Graph Builder がすべての水平方向のスペースを埋めるようにします。 そのスペースのサイズがわからないので、直接指定したくありません。利用可能なすべてのスペースを埋めたいだけです。
RGB で Set Auto Stretching (1,0) を使用してみましたが、あまり役に立ちませんでした。
実験的に、プロパティに移動して X の Stretching を Neutral から Fill に変更すると、Frame Box から Outline Box までの EACH AND EVERY BOX ごとに次のようになることがわかりました。

それは私がそれを見たいように見えます:

質問:
1. これしかないの?
2. ある場合 - スクリプトの作成方法は?
更新: XPath を祖先または自己 (または以下の祖先だけの単純なバリアント) で使用できるはずですが、動作させることができません。
rgb << Xpath("//FrameBox/ancestor")スクリプティングRe: 使用可能なすべてのスペースを埋めるために GB を拡張する方法は?レポートが複製された後、フレーム ボックスに自動ストレッチを設定するとうまくいくと思います。
lb = LineUp Box(NCol(3), rtab, rtab, rtab, Unlineup Box(rgb) );
lb[FrameBox(1)] << Set Auto Stretching(1,0);
nw = New Window("DEMO", Show Menu(0), Show Toolbars(0), lb);
レイアウトが変更されたときに動作が常に変換されるとは限らないため、ボックスのクローンが作成されると、ストレッチ プロパティは通常クリアされます。
Re: 使用可能なすべてのスペースを埋めるために GB を拡張する方法は?私の使用例を除いて、このスクリプトはユーザーが連続してロードする多くのテーブルで実行され、このウィンドウ nw はそれらの Line Up Box を次々に追加します。 次のテーブルごとに前のテーブルが閉じられるため、ライブ グラフを作成できません。rtable が閉じられた後もレポートを保持する必要があります。
この式を実行してみました:
gb_expr = Expr(
(gb = dt << Graph Builder(
//Size( 528, 464 ),
Show Control Panel(0),
Variables(X(:Category), X(:X, Position(1)), Y(:Y_veryLongName_toMake_Tabulat_Large), Color(:Category)),
Elements(Points(X(1), X(2), Y, Legend(9)))
))<<REPORT></REPORT>
しかし、うまくいきませんでした。 テーブルを閉じてもグラフビルダーがウィンドウから消えないように変更する方法はありますか?
Re: 使用可能なすべてのスペースを埋めるために GB を拡張する方法は?他のオプションは、新しいウィンドウ内に直接グラフビルダーを作成することです
Names Default To Here(1);
dt = New Table("DEMO",
Add Rows(10),
New Column("Category", Character, "Nominal", Set Values({"A", "A", "A", "A", "A", "B", "B", "B", "B", "B"})),
New Column("X", Character, "Nominal", Set Values({"AA", "AD", "AC", "AD", "AC", "BD", "BF", "BF", "BD", "BS"})),
New Column("Y_veryLongName_toMake_Tabulat_Large",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([12, 32, 42, 23, 21, 12, 34, 53, 23, 12])
)
);
tab = dt << Tabulate(
Show Control Panel(0),
Add Table(
Column Table(Analysis Columns(:Y_veryLongName_toMake_Tabulat_Large), Statistics(Sum, Mean)),
Row Table(Grouping Columns(:Category, :X))
)
);
gb_expr = Expr(
gb = dt << Graph Builder(
//Size( 528, 464 ),
Show Control Panel(0),
Variables(X(:Category), X(:X, Position(1)), Y(:Y_veryLongName_toMake_Tabulat_Large), Color(:Category)),
Elements(Points(X(1), X(2), Y, Legend(9)))
)
);
rtab = tab << Report;
lb = Lineup Box(N Col(3), rtab, rtab, rtab, Unlineup Box(gb_expr));
nw = New Window("DEMO", Show Menu(0), Show Toolbars(0), lb);
gb << Auto Stretching("On");Re: 使用可能なすべてのスペースを埋めるために GB を拡張する方法は?わかりました、私はより多くのことを試みました:
rgb << Fit To Window("On");これはうまくいきませんでした。
rgb[FrameBox(1)] << Set Auto Stretching(1,0);
これは、レポート全体ではなく FrameBox に Auto Stretching を適用したもので、うまくいきました。
その過程で出くわした質問はまだ残っています: XPath Axes の適切な構文は何ですか? 先祖、子供、祖先、または自己など....