你好,
我有一個使用列切換器的分發平台,其中填充了列表變數中的列。 這些列中的每一列都代表不同的品質參數,因此具有從 SQL 查詢收集的不同限制。
有沒有一種方法可以在列切換器更改列時動態地將參考線新增至分送平台? 現在,我有一個 SendToReport 在每個專案的循環中運行,但它最終會一次添加所有列的參考線,而不僅僅是每個列所需的兩條參考線。
一個簡單的方法是,如果列切換器支援“列更改”腳本 - 然後我可以刪除以前的引用行並在每次更改時添加新的引用行。 如果支援類似的內容,我找不到任何腳本索引資訊。
JMP 版本:14
has_limits = {"item 1", "item 2", "item 3"};
dist = dt << Distribution(
Continuous Distribution( Column( "item 1" ), Horizontal Layout( 1 ), Always use column properties( 1 ), Vertical( 0 ), Outlier Box Plot( 0 ) ),
Column Switcher( "item 1", has_limits )
);
For( n = 1, n <= N Items( has_limits ), n++,
tempUCL = Col Max( Column( dt, has_limits[n] || "_UCL" ) );
tempLCL = Col Max( Column( dt, has_limits[n] || "_LCL" ) );
Eval(
Eval Expr(
dist << SendToReport(
Dispatch(
{Expr( has_limits[n] )},
"1",
ScaleBox,
{Add Ref Line( Expr( tempUCL ), "Dashed", "Medium Dark Red", "UCL", 1 ), Add Ref Line(
Expr( tempLCL ),
"Dashed",
"Medium Dark Red",
"LCL",
1
)}
)
)
)
);
);這是一個可以幫助您部分實現目標的腳本。由於某種原因,它會刪除軸值,但如果您可以在數據上嘗試它,您也許能夠弄清楚如何讓它正常工作。該程式碼是使用 JMP 14 開發的
names default to here(1);
dt = open("$SAMPLE_DATA/blood pressure.jmp");
has_limits = {"bp 8m", "bp 12m", "bp 6m"};
for(i=1,i<=nitems(has_limits),i++,
new column(has_limits[i] || "_UCL", values(matrix(quantile(.75,column(has_limits[i])<<GET values=""></GET>謝謝你。 我還沒有弄清楚缺少的軸值,這很奇怪(還顯示“正在加載”遊標),但它至少是朝著正確方向邁出的一步。
解決方法可能是執行 JSL,然後轉到報告輸出視窗中的紅色三角形,並選擇「儲存腳本」。將其儲存到腳本窗口,然後運行該腳本。我的測試顯示 JMP 創建的程式碼缺少 X Azis 標籤。
我已將該錯誤提交給 JMP 支援。
其他似乎有效的解決方法是添加填充(也許有東西被推到軸盒頂部?)

或從軸設置啟用圖形框架內的刻度線,儘管這會使圖形看起來有點奇怪,我認為您可能還想啟用網格線

