關於導航複雜顯示樹的問題你好。 我的問題是是否有一種簡單的方法可以導航顯示樹以到達繪圖的 (x) AxisBox,如果不知道樹中是否有其他 (y) AxisBoxes 在它之前。 我正在考慮可能使用 Xpath 或其他方法。 在我的腳本中,我為我的結果創建了一個窗口,包括一個分佈。 用戶可以選擇包括直方圖、異常值箱線圖和/或正態分位數圖。 例子:
Names Default to Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//User controllable options to plot histogram, outlier box plot, or normal quantile plot
histopt = 1;
outlopt = 1;
nqplopt = 1;
//Make results window
Try(Window("My Window") << Close Window);
win = New Window("My Window",
TextBox("Important text info"),
LUB = LineUpBox(NCol(1), Spacing(10,10))
);
//Add distribution to it.
Eval(EvalExpr(
LUB << Append(
dist = Distribution(
Column("Height"),
Histogram(Expr(histopt)),
Outlier Box Plot(Expr(outlopt)),
Normal Quantile Plot(Expr(nqplopt)),
Capability Analysis(0),
Quantiles(0),
Vertical(0),
Stack(0),
Automatic Recalc(0)
);
);
));
win << Show Tree Structure;如上所述選擇所有 3 個繪圖選項後,生成的樹結構顯示,正態分位數圖的 (y) AxisBox 的標題為“AxisBox(1)”,而 (x) AxisBox 的標題為“AxisBox(2)”。 如果我關閉正常分位數選項並再次運行腳本,則 (x) AxisBox 現在標題為“AxisBox(1)”。 所以不幸的是,我不能簡單地通過它的名稱來引用軸框,而且我不喜歡這樣做,因為顯示框的名稱可以改變。 我不太了解 XPath,無法告訴它如何僅查找 x 軸 Axis Box,但我想知道是否有類似的方法:
win << XPath("\\AxisBox() = "Xaxis");或者類似的東西?
回复:關於導航複雜顯示樹的問題謝謝特克斯。 我不知道您可以從報告中獲取腳本。 這打開了幾扇門。 雖然我仍然希望有一些方法可以通過 XPath 做到這一點。
回复:關於導航複雜顯示樹的問題有趣的問題。我無法想出一個直截了當的解決方案。Xpath 似乎返回了平台所有可能的軸框,而不僅僅是當前顯示的軸框。但是,我認為您可以檢查 Axis Box() 對像以確定它是普通分位數框還是直方圖。Normal Quantile 框的比例是“Normal Probability”,如果軸是直方圖,我不相信你會看到。但是還有一個問題......似乎沒有<< get scale 用於軸框的選項......但是,它出現在軸框()的腳本中。所以如果你
theScript = report(dist)[AxisBox(1)] << get script;
你會回來的
Report( dist )[axisbox( 1 )] << get script = {Scale( "Normal Probability" ), Format( "Best" ),
Min( 0.0195121951219512 ), Max( 0.980487804878049 ), Interval( "Numeric" ), Inc( 0.1 ), Minor Ticks( 0 ),
Label Row Nesting( 1 ), Label Row(
{Automatic Font Size( 0 ), Automatic Tick Marks( 0 ), Inside Ticks( 0 ), Label Alignment( "Near" ),
Label Buffer Scale( 1 ), Label Orientation( "Horizontal" ), Lax Label Range( 0 ),
Major Grid Line Color( -14145495 ), Minimum Depth( 0 ), Minimum Font Size( 7 ),
Minor Grid Line Color( -15790320 ), Show Major Grid( 1 ), Show Major Labels( 1 ), Show Major Ticks( 1 ),
Show Minor Grid( 0 ), Show Minor Labels( 0 ), Show Minor Ticks( 1 ), Tick Offset( 0 ), Wrap Lines( 0 )}
)};
您可以在其中掃描並找到正在使用的秤。然後從那裡確定要處理哪個 AxisBox。