使用行組織中的頁面/排列時如何調整圖形產生器面板的大小嘿大家,
我希望有人可以幫助我找出在圖形產生器中調整面板大小的程式碼。
這是來自大類資料集:

如果我想使用 JSL 將尺寸設定得更大(自動調整視窗已關閉),如下所示:

我該如何做到這一點?
我需要此功能的原因是,目前如果您對“頁面”列使用過濾器,那麼您擁有的等級越多,圖表就會變得越來越小。當您有大量關卡時,它可能會變得非常小,您甚至看不到調整面板大小的手柄。所以我必須選擇一些級別,調整大小,選擇更多級別,調整大小等等......非常煩人,並且消除了這個新的圖形生成器功能的一些令人敬畏的功能。另一方面,如果在過濾器中刪除等級時有大量等級大小正確,則圖表會變得越來越大。
所以我希望能夠透過 JSL 有一個輸入框,我可以在其中輕鬆快速地更改大小。
希望這是有道理的,感謝您的任何想法!
史蒂夫
自動化和腳本編寫數據探索和視覺化回覆:使用行組織中的頁面/排列時如何調整圖形產生器面板的大小想根據您的程式碼添加我最終得到的位置,提供一個浮動窗口,我可以在其中根據自己的喜好互動式調整面板大小:
//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>回覆:使用行組織中的頁面/排列時如何調整圖形產生器面板的大小這就像一個魅力,謝謝!
回覆:使用行組織中的頁面/排列時如何調整圖形產生器面板的大小它必須以某種方式觸發,很可能是由某些控製或處理程序觸發(在該示例中,您可以在應用過濾器處理程序之前調用相同的函數,例如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))
)
)
)
)
);
回覆:使用行組織中的頁面/排列時如何調整圖形產生器面板的大小謝謝賈莫!這確實很接近,但是當我使用新的大小來運行這部分程式碼時,看起來像是:
f = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(500, 500);
);
rs = ldf << Make Filter Change Handler(f);在我更改過濾器選項之前,該圖形產生器不會更新圖表的大小。有沒有辦法強制圖表更新大小而不需要更改過濾器?
計劃是有一個浮動窗口,我可以在其中輸入不同的幀大小,這取決於選擇完成後我選擇的級別數。
感謝您提供任何額外的意見!
回覆:使用行組織中的頁面/排列時如何調整圖形產生器面板的大小我不確定除了透過 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);
您可能想要在圖形產生器/視窗中新增某種“大小強制”,以便視窗不會不斷調整大小。