使用樹結構中的對像從繪圖輸出中獲取數據的問題<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,我想得到各種規格限制情景的後果數據。 我之前在另一個循環遍歷列的腳本中完成了它,將每列作為列表,select_where()數據高於/低於規範限制,但我希望這次使用本機JMP信息。
當存在限制時,JMP的分發平台將顯示cpk分析和後果。 當我檢查樹結構時,後果信息顯示在名為“numbercolbox(4)”的對象/列表中。 我已經想出瞭如何獲取餘量數據,我可以填充規範限制並重新運行每個限制集的分佈,但我想知道這個解決方案的可靠性。 例如,如果其他人有一組不同的首選項,那麼numbercolbox(4)是否總是要提取餘量數據?
我想這是一個替代xpaths,但我沒有太多的信息。如果這是一個不錯的解決方案,並且有人有相關文檔,請告訴我。
附件是一個腳本,它做我想要的,並為我工作。你可以運行它,看看我在說什麼。它使用樣本數據。
要在JMP輸出(圖表等)上查看樹結構,請使窗口大於本機窗口,然後在最底部或最右側區域中按住Ctrl鍵並右鍵單擊,然後選擇顯示樹結構。見下文。
謝謝,
-麥克風

Re:使用樹結構中的對像從繪圖輸出中獲取數據的問題我更改了xpath代碼以使其更簡單(至少對我而言),這適用於我需要它做的事情。 但是,我仍然很好奇為什麼我上面發布的代碼不起作用,因為你使用的更通用的結構/代碼將非常有用。
謝謝,
麥克風
名稱默認為此處 ( 1 ) ;
的testvar = 0 ;
的testvar = 1 ; //註釋後續運行
如果 ( 的testvar ,
打開 ( “$ SAMPLE_DATA \ Semiconductor Capability.jmp” ) ;
myDist = 分配 (
堆 ( 1 ) ,
持續分配 (
柱 ( : NPN1 ) ,
自定義摘要統計信息 (
穩健的意思 ( 1 ) ,
強大的標准開發 ( 1 )
)
) ,
持續分配 (
柱 ( : PNP1 ) ,
自定義摘要統計信息 (
穩健的意思 ( 1 ) ,
強大的標准開發 ( 1 )
)
) ,
持續分配 (
柱 ( : PNP2 ) ,
自定義摘要統計信息 (
穩健的意思 ( 1 ) ,
強大的標准開發 ( 1 )
)
)
) ;
) ;
reportObj = myDist << XPath的 ( “// OutlineBox [text()='摘要統計']” ) ;
對於 ( 一世 = 1 ,一世 <= NITEMS ( reportObj ) ,一世 ++,節目 ( reportObj [ 一世 ] << 得到頭銜 ) ; ) ;
strList = {} ;
reportObj = myDist << XPath的 ( “// OutlineBox [text()='Summary Statistics'] // StringColBox” ) ;
// for(i = 1,i <= nitems(reportObj),i ++,show(reportObj <<獲得); strList = reportObj << get;);
節目 ( reportObj [ 1 ] << 得到 ) ;
strList = reportObj [ 1 ] << 得到 ;
嘗試 ( rMnIndx = LOC ( strList , “健壯的意思” ) , rMnIndx = - 1 ) ;
嘗試 ( rStdIndx = LOC ( strList , “穩健的標準偏差” ) , rStdIndx = - 1 ) ;
statList = {} ;
reportObj = myDist << XPath的 ( “// OutlineBox [text()='Summary Statistics'] // NumberColBox” ) ;
// for(i = 1,i <= nitems(reportObj),i ++,show(reportObj <<獲得); statList = reportObj << get;);
節目 ( reportObj [ 1 ] << 得到 ) ;
statList = reportObj [ 1 ] << 得到 ;
如果 ( rMnIndx > 0 & rStdIndx > 0 ,
robustMean = statList [ rMnIndx ] ;
robustStd = statList [ rStdIndx ] ;
,
robustMean = - 999 ;
robustStd = - 999 ;
) ;
節目 ( robustMean , robustStd ) ;
Re:使用樹結構中的對像從繪圖輸出中獲取數據的問題嗨菲利普,
我終於到了檢查xpath代碼,我遇到了麻煩。我用你的海報作為參考。 你能幫我搞清楚我做錯了什麼嗎?
另外,我想我以前見過這個,但我不記得了...... 是什麼 ' 。 ' 在裡面 ” list_testSS.Key “變量名稱為?
似乎讓人想起C中的結構,但我找不到它的jsl文檔。我不確定它是否在我的代碼中正確設置。
謝謝,
麥克風
名稱默認為此處 ( 1 ) ;
打開 ( “$ SAMPLE_DATA \ Semiconductor Capability.jmp” ) ;
myDist =
分配 (
堆 ( 1 ) ,
持續分配 (
柱 ( : NPN1 ) ,
水平佈局 ( 1 ) ,
垂直 ( 0 ) ,
左邊的軸 ( 1 ) ,
自定義摘要統計信息 (
Std Err Mean ( 0 ) ,
上均值置信區間 ( 0 ) ,
較低的平均置信區間 ( 0 ) ,
N失踪 ( 1 ) ,
範圍 ( 1 ) ,
穩健的意思 ( 1 ) ,
強大的標准開發 ( 1 )
)
)
) ;
reportObj = myDist << XPath的 ( “// OutlineBox [text()='Summary Statistics'] / ancestor :: OutlineBox [last()]” ) ;
list_groupName = reportObj << 的getTitle ;
list_testSS.Key = ( reportObj << XPath的 ( “// * [contains(text(),'Summary Statistics')] / following-sibling :: * // StringColBox” )) << 得到 ;
list_testSS.Val = ( reportObj << XPath的 ( “// * [contains(text(),'Summary Statistics')] / following-sibling :: * // NumberColBox” )) << 得到 ;
list_levelString = ( reportObj << XPath的 ( “// OutlineBox [text()='Long Term Sigma'] // StringColBoxHeader [text()='Capability'] / ..” )) << 得到 ;
list_levelMeans = ( reportObj << XPath的 ( “// OutlineBox [text()='Long Term Sigma'] // NumberColBoxHeader [text()='Index'] / ..” )) << 得到 ;
Re:使用樹結構中的對像從繪圖輸出中獲取數據的問題xpath的一個明顯優勢是當JMP報告窗口中有多個displaybox對象時。例如,假設你做了一些分析並結束了
有100個Outlinebox,你可以用xpath做:
rpt << xpath(“// OutlineBox”)
並返回所有大綱框的引用列表。(其中rpt引用了 JMP報告窗口)
使用傳統的顯示框腳本,您必須首先知道生成了多少腳本,然後從1循環到N,並通過其索引訪問每個大綱框。索引可能是一個問題,特別是如果序列不清楚(例如嵌套的輪廓框)。這可以是更多的編碼步驟。
就速度而言,XPath的執行速度要快得多,特別是對於大型群組。我不認為它對你所描述的“單發”情景有所影響,但是必須進行正式的時間研究。
Re:使用樹結構中的對像從繪圖輸出中獲取數據的問題謝謝,我一直在尋找那樣的文檔。我會玩一下它,看看它是怎麼回事。看起來很簡單但也依賴於語言,這對我所需要的可能是好的。
為什麼xpath比顯示樹腳本更有效?它只是更有效的編碼是否能更快地獲取信息?出於這個問題的目的,讓我們假設它只是一個被返回的對象,就像一個分發圖片框,你知道它的名字或編號。如果這樣做100或1000次,是否明顯快於另一次?似乎生成報告本身(在提取對象之前)是執行時間的位置。
Re:使用樹結構中的對像從繪圖輸出中獲取數據的問題在今年的會議上,XPath上有一張非常好的海報。
https://community.jmp.com/docs/DOC-8116
他們通過JMP結構經歷了一些現實生活中的例子。
Re:使用樹結構中的對像從繪圖輸出中獲取數據的問題謝謝!現在對我來說很明顯。;-)我會看看是否有任何用戶正在使用其他語言,並為其他語言添加一些鉤子。 它不會是防彈的,但它應該適合我們的目的。 謝謝。
Re:使用樹結構中的對像從繪圖輸出中獲取數據的問題說明顯而易見的,但請注意,如果腳本需要在多個區域設置中運行,則在按名稱索引顯示框時必須小心。
Re:使用樹結構中的對像從繪圖輸出中獲取數據的問題謝謝,這個數字(在我的情況下是4)可以改變的事實是我所期望的。您的解決方案完美無缺
我也在使用變量(列表)設置上限和下限規格限制時遇到問題。 當我使用硬編碼列表時,我在示例中它可以正常工作,但我不能只使用一個簡單的列表元素。我可能沒有正確使用eval(substitute()),但根據我的經驗,這是JSL最令人困惑的部分之一。
對於如何解決這個問題,有任何的建議嗎?
。
| | | mySpecsExpr = expr(作為列(yParamNames )<< set property(“Spec Limits”,{aaa,bbb})); |
| | | 節目(EVAL(DLIST [1]) ,eval(dList [2]) ); // < - 這些在日誌窗口中評估得很好 |
| | | eval(替換(mySpecsExpr,expr(aaa),eval(dList [1]) ,expr(bbb),eval(dList [2]) )); |
編輯:其實我能夠根據這個如何解決這個問題: 46953 - 如何使用變量編寫列屬性腳本
這有效。 但如果有人有更簡單的答案,我會很感激。
| | | | 的eval( |
| | | | | Eval Expr( |
| | | | | | 作為列(yParamNames )<<設置屬性( |
| | | | | | | “規格限制”, |
| | | | | | | {LSL(Expr(eval(dList [1]) )),USL(Expr(eval(dList [2]) ))} //,Target(Expr(tLimit)),Show Limits(0)} |
| | | | | | ) |
| | | | | ) |
| | | | ); |
Re:使用樹結構中的對像從繪圖輸出中獲取數據的問題我不知道這個特定平台或節點的編號有多強大。但總的來說,編號並不固定,但可能會隨報告的整體複雜程度而變化。
添加特定顯示框的另一種方法是使用其名稱。也支持通配符。我認為名稱比編號更健壯,因為它們很少在JMP版本之間改變,而佈局和默認選項數量可能因版本和偏好而異。
一世在您的示例腳本的上下文中,全部下面三行都會返回相同的結果:
報告 ( distObj ) 數字Col Box ( 4 )] << 得到 ;
報告 ( distObj ) 數字Col Box ( “%實際” )] << 得到 ;
報告 ( distObj ) 數字Col Box ( “%?” )] << 得到 ;