ページ/行配置構成を使用するときにグラフビルダーパネルのサイズを変更する方法こんにちは、みなさん、
グラフ ビルダーでパネル サイズを変更するコードを理解するのを手伝ってくれる人がいればと思っています。
これは、大規模なクラスのデータセットからのものです。

JSL を使用してサイズをさらに大きく設定したい場合 (ウィンドウの自動調整はオフ)、次のようにします。

どうすればそれを達成できるでしょうか?
この機能が必要な理由は、現在、「ページ」列にフィルターを使用すると、レベルが増えるにつれてグラフがどんどん小さくなるためです。レベルがたくさんあると、パネルのサイズを変更するためのハンドルさえ見えないほど小さくなることがあります。そのため、いくつかのレベルを選択してサイズを変更し、さらにいくつかのレベルを選択してサイズを変更するなどする必要があります。非常に面倒で、この新しいグラフ ビルダー機能の素晴らしさが失われます。逆に、フィルターでレベルを削除すると、サイズが変更されたレベルがたくさんある場合、グラフはどんどん大きくなります。
そこで、JSL を使用して入力ボックスを作成し、サイズを簡単かつ迅速に変更できるようにしたいと考えています。
これが意味を成すことを願っています。また、アイデアがあれば教えてください。
スティーブ
自動化とスクリプトデータの探索と視覚化Re: ページ/行の配置構成を使用するときにグラフ ビルダー パネルのサイズを変更する方法これは何らかの方法でトリガーされる必要があり、おそらく何らかのコントロールまたはハンドラーによってトリガーされるでしょう (この例では、たとえばフィルター ハンドラーが適用される前にf(0)のようなもので同じ関数を呼び出すことができます)
もっと見る...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92)))
)
);
ldf = gb << Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
);
change_frame_size = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(500, 500);
);
change_frame_size(0);
rs = ldf << Make Filter Change Handler(change_frame_size);
以下はボタン押下によってトリガーされる最も単純なケースです
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
Button Box("Update Frames",
(Report(window:gb) << XPath("//FrameBox")) << Frame Size(300, 300);
),
window:gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92))),
Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
)
)
)
);
Re: ページ/行の配置構成を使用するときにグラフ ビルダー パネルのサイズを変更する方法JSL でこれを制御する以外のオプションがあるかどうかはわかりませんが、フレーム サイズを変更することはできます (ない場合は、ウィッシュ リスト項目を作成する価値があります。データ フィルターの「ウィンドウ サイズのロック」は、すでに「スケールのロック」があるためです)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92)))
)
);
ldf = gb << Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
);
f = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(300, 300);
);
rs = ldf << Make Filter Change Handler(f);
ウィンドウのサイズが変更されないように、グラフ ビルダー/ウィンドウに何らかの「サイズ強制」を追加することをお勧めします。
Re: ページ/行の配置構成を使用するときにグラフ ビルダー パネルのサイズを変更する方法ありがとう、Jarmo! これは本当に近いですが、コードのこのセクションを新しいサイズで実行すると次のようになります:
f = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(500, 500);
);
rs = ldf << Make Filter Change Handler(f);グラフ ビルダーでは、フィルター オプションを変更するまでグラフのサイズが更新されません。フィルターを変更せずにグラフのサイズを強制的に更新する方法はありますか?
計画としては、選択が完了した後に選択したレベルの数に応じて異なるフレーム サイズを入力できるフローティング ウィンドウを用意することです。
追加のご意見をいただければ幸いです。
Re: ページ/行の配置構成を使用するときにグラフ ビルダー パネルのサイズを変更する方法それはうまくいきました、ありがとう!!
Re: ページ/行の配置構成を使用するときにグラフ ビルダー パネルのサイズを変更する方法あなたのコードに基づいて最終的にどこにたどり着いたかを追加したいのですが、パネルのサイズを好みに合わせてインタラクティブに変更できるフローティング ウィンドウを提供します。
//rev 5-5-24
Names Default To Here(1);
dt=current data table();
obj=current report()["Graph Builder"]<< get scriptable object;
obj1 = obj << Get Window Title;
s = Window(obj1)<< Get Window Size();
nw = New Window("Resize Graph Builder Page Panels",Show Menu( 0 ),Show Toolbars( 0 ),
V List Box(
h list box(
vlist box(
text box("frame Size Y"),
neb1=Number Edit Box( 250 );
),
vlistbox(
textbox("frame Size X"),
neb2=Number Edit Box( 350 );
)
),
Button Box("Update Frames",
Report(obj)<< Fit to Window("Off");
nebval1=neb1 << Get;
nebval2=neb2 << Get;
(Report(obj) << XPath("//FrameBox")) << Frame Size(nebval2, nebval1);
window(obj1) << Set Window Size( s );
),
)
);
nw << Size Window( 400, 200 );
window(obj) << On Close(window("Resize Graph Builder Page Panels")<<CLOSE window=""></CLOSE>