圖形產生器 框架尺寸 JSL大家好,
這可能是一個簡單而快速的解決方案。 但我有點努力尋找正確的方法。
我試圖弄清楚如何使圖表產生器中的所有圖表具有一致的框架大小和一致的圖例設定。 我運行一個 FOR 循環,在數據表末尾有數值。 它的範圍可以是 1 列到多列,我嘗試在 Y 軸上繪製所有列。
主要差異發生在 Y 軸只有一個參數時,圖例不會顯示,但有 2 個或更多參數時,圖例會自動顯示,我不必為其編寫單獨的 JSL 命令。 因此,由於圖例設定中缺乏空間,每個圖表看起來都不同。
關於如何解決這個問題有什麼想法嗎?
謝謝
回覆:圖形產生器框架尺寸 JSL具有匹配框架尺寸的圖表?這在 Jmp 中可能嗎?
我詢問了 Jmp 支援 (TS-00076249) 並得到了答案:
是的,我想說這是可能的,但可能需要相當多的腳本編寫為您想要製作的所有可能的圖表完成此操作 - 特別是當您正在談論圖表產生器時。
若要考慮目前使用的顯示器的顯示分辨率,您可以存取將返回顯示器解析度的 Windows dll。您可以使用它來根據需要縮放像素大小規格。但是,如果您在多顯示器環境中工作,其中每個顯示器可能具有不同的分辨率,則實際上不可能考慮分辨率,因為無法知道您的圖形位於哪個顯示器上。
好吧,那麼,怎麼樣?
產生大小匹配的圖形真的那麼複雜嗎?
使用案例:
我們使用 PowerPoint 來展示我們的 Jmp 分析。
為了實現頁面之間的平滑過渡,我們希望創建具有相同框架大小的所有圖形(頁面 NxM 子圖的外框大小相同 - 無軸)以及軸和 X/Y 的字體大小相同組標籤。
回覆:圖形產生器框架尺寸 JSL我也開始希望能將一些
Fit to Window( "Off" ),
和
Size(...)
可能會解決問題。
但是當我意識到在程式碼中@ErraticAttack這兩個功能都花了我的希望破滅了。
在範例中,不同的 X 標籤導致圖形的大小完全不同。
只要整個圖形(包括軸)周圍沒有矩形,就沒有人會注意到兩者俱有相同的大小。
Y 軸大小不同時出現相同問題:

Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
New Window( "TEST",
V List Box(
Graph Builder(
Size( 500, 200 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Fit to Window( "Off" ),
Variables( X( :Make ), Y( :Wt ) ),
Elements( Bar( X, Y ) )
)
,
Graph Builder(
Size( 500, 200 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Fit to Window( "Off" ),
Variables( X( :Make ), Y( :Wt ) ),
Elements( Bar( X, Y, Legend( 1 ) ) ),
SendToReport(
Dispatch( {}, "Wt", ScaleBox, {Format( "Engineering SI", 12 )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Weight" )} )
)
)
)
)
回覆:圖形產生器框架尺寸 JSL我知道這是很久以前的事了,但幾個月前我們正在解決同樣的問題並提出了這個:
Names Default to Here( 1 );
win = Get Window List();
// find graph builder windows
graphs = Filter Each({w}, win,
If(Length(w << XPath("//OutlineBox[@helpKey='Graph Builder']")) > 0, 1, 0)
);
// get the last Graph Builder
last_gb = graphs[N Items(graphs)][OutlineBox("Graph Builder")] << Get Scriptable Object;
// set size
last_gb << Fit to Window("Off");
// last_gb << Show Control Panel( 0 );
last_gb << Size(1000,800);
// copy picture
frame = (graphs[N Items(graphs)] << XPath( "//GraphBuilderBox" ))[1];
frame << Copy Picture;「適合視窗」是使輸出圖大小準確的關鍵。
回覆:圖形產生器框架尺寸 JSL這裡有更新嗎?
聽起來像是Jmp 和 JSL 中 Tiny Traps的候選者

綠色:“尺寸”
藍色:框架尺寸
紫色:地塊大小
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window("test",
H List Box(
Graph Builder(
Size( 500, 300 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :name ),
X( :age, Position( 1 ) ),
X( :sex, Position( 1 ) ),
Y( :height ),
Group X( :sex )
),
Elements( Points( X( 1 ), X( 2 ), X( 3 ), Y) ),
SendToReport(
Dispatch( {}, {"height vs. name & 2 more"}, TextEditBox,
{Set Text( "my title\!nspans over 2 lines" )}
),
Dispatch( {}, {:height}, TextEditBox,
{Set Text( "very long Y axis title " ), Rotate Text( "Horizontal" )}
)
)
);,
Graph Builder(
Size( 500, 300 ),
Show Control Panel( 0 ),
Variables( X( :sex ), Y( :height ), Group X( :age ) ),
Elements( Points( X, Y ) ),
SendToReport(
Dispatch( {}, {:height}, TextEditBox,
{Set Text( "x" ), Rotate Text( "Horizontal" )}
)
)
)));
回覆:圖形產生器框架尺寸 JSL這與我想要的相反——我需要框架框()只能是指定的尺寸。這是一些範例程式碼來說明這一點。這尺寸(500、500)被饋送到兩者,但顯然框架框()尺寸非常不(500, 500) 。
事實上,這甚至不是GraphBuilderContainerBox()您顯示已設定為給定大小 - 您必須先刪除圖例框() ,然後將剩餘的(標題/軸/軸標題)設為(500,500)尺寸。這太荒謬了吧!
實際上沒有辦法設定框架框() (例如,如果您在大綱框(“”,圖形產生器(...))並做了輪廓框[框架框( 1 )] << 框架尺寸( 500, 500 ))在實例化之前/期間圖形產生器()盒子。它只能在創建視窗和圖形後完成。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
New Window( "TEST",
H List Box(
Graph Builder(
Size( 500, 500 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables(
X( :Make ),
X( :Model, Position( 1 ) ),
X( :Year, Position( 1 ) ),
X( :Protection, Position( 1 ) ),
X( :"D/P"n, Position( 1 ) ),
X( :Size, Position( 1 ) ),
X( :Doors, Position( 1 ) ),
Y( :Wt ),
Color( :Model )
),
Elements(
Bar(
X( 1 ),
X( 2 ),
X( 3 ),
X( 4 ),
X( 5 ),
X( 6 ),
X( 7 ),
Y,
Legend( 9 )
)
)
)
,
Graph Builder(
Size( 500, 500 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :Make ), Y( :Wt ) ),
Elements( Bar( X, Y, Legend( 11 ), Error Interval( "Standard Error" ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Grid Line Order( 1 ), Reference Line Order( 2 )}
)
)
)
)
)我需要的是有圖表的區域(框架框() )是給定的固定大小,與我的軸的大小或文字的複雜程度和長度無關。

回覆:圖形產生器框架尺寸 JSLSize 元素設定 Frame(FrameBox()) 大小。

它沒有設定 GraphBuilderContainerBox()

我猜這就是您期望設定的尺寸。
回覆:圖形產生器框架尺寸 JSL這是行不通的。框架大小取決於框架周圍圖例/文字區域的大小。
回覆:圖形產生器框架尺寸 JSL@vishwasanj
大小參數及其參數可用於定義和限制視窗的大小,如下例所示。
Graph Builder(
Size( 1230, 650 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y, Legend( 2 ) ) )
)
回覆:圖形產生器幀大小 JSL我提交了一個願望:
能夠產生具有特定繪圖大小的圖表的功能
讓我們來看看 ...
回覆:圖形產生器框架尺寸 JSL嗨,維什瓦桑吉,
我也遇到這個問題。 與您分享我的解決方案,儘管這可能不是一個有效的方法。
為了簡單起見,我僅解釋 X 軸(水平方向)。
假設標準模板 Framebox 大小為 500,則整個圖形大小為 535。 這意味著我們的大小不屬於 Framebox,大小為 35。
然後,我們有一個由一些 for 迴圈產生的圖,在分配幀大小 = 500 後,整體大小 = 550。
然後,考慮到這些圖將匯出為固定總大小 png,如果我們具有相同的幀大小與整體大小比率,我們可以具有相同的幀大小。
也就是說,我們可以在上一張圖中加上“dx”,使比例相同。
500:535=(500+dx):(550+dx+dx2),
其中 dx2 是施加 dx 後軸長度的增加。
不過,根據我的經驗,dx2基本上可以忽略不計。
因此,我們可以調整550寬度的圖片,幀大小=500+dx,其中
500:535=(500+dx):(550+dx)。
匯出為類似尺寸的 png 後,我們可以獲得相同畫面尺寸的圖片。回覆:圖形產生器框架尺寸 JSL看看我的貼文吧,希望對你有幫助。回覆:圖形產生器框架尺寸 JSL願望的新連結(舊連結似乎已損壞):
產生具有特定繪圖大小的繪圖的功能
同時,這個願望獲得了 15 個榮譽:)
回覆:圖形產生器幀大小 JSL現在我們有 26 個 Kudos。