for 迴圈的資料過濾器你好,
我對腳本編寫相當陌生。 我理解 for 循環,但我在這裡需要一些幫助。
我無法在腳本指南中找到資料過濾器的 for 循環範例。 如果有人可以幫我解決文法問題,那就太好了。
我想做的是,我有一個樹形圖,我需要使用資料過濾器表建立一個「for」循環,以將圖形輸出自動儲存為 .png 檔案。
我附上了一張圖。 例如,條件 1:晶圓 11,選擇 25C 的所有 Vpp 調整集和公式 NO(1 個圖表)
條件 2:晶圓 12,選擇 85C (0,11111) 的所有 Vpp 調整組和公式 NO(1 圖)
條件 3:繪製晶圓 11(9 個圖表)和晶圓 12 的所有調整集值(2 個圖表)
如果我在程式碼中一項一項地完成,但不能一起完成,我就可以做到。
謝謝
回覆:for循環的資料過濾器謝謝@大衛_伯納姆, @Craige_Hales克雷格和@tx尼爾森
你們好棒!
回覆:for循環的資料過濾器好的!回覆:for循環的資料過濾器我下面給出的範例包含將跳過沒有行的組合的程式碼
http://www.pega-analytics.co.uk/blog/scripting-data-filters/
回覆:for循環的資料過濾器我明白發生了什麼事。 感謝克雷格提供的非常好的解釋。
我相信如果條件沒有找到與條件關聯的任何行,它就會中斷並停止。
“資料表‘最終表’的Where子句導致沒有行:Wafer ==“12”& Formula == Empty()”
相反,它可以繼續進行以便可以繼續使用循環進行繪圖嗎?
回覆:for循環的資料過濾器在範例程式碼中,gb 是平台目的。 這報告() 函數向平台物件詢問保存平台可見報表的 DisplayBox。 該平台不知道它周圍有更多的 DisplayBox。 您必須使用 <回覆:for循環的資料過濾器
正確的。或者 gb 從未設定過,或者 gb 已經關閉。
您可以使用
show(type(gb));
showproperties(gb);
在您的腳本中獲取有關該物件的一些資訊。 您應該在日誌中看到類似這樣的內容:
Type(gb) = "Scriptable";
Show Control Panel [Boolean] [Default On] (Displays or hides the control panel.)
Show Legend [Boolean] [Default On] (Displays or hides the legend to the right of the graph.)
Legend Position [Enum] {Right, Bottom, Inside Left, Inside Right}
Legend Settings [Action](Opens a dialog to modify the properties of the legend.)
Continuous Color Theme [Action](Se .... < a lot more follows>
在 JMP 中,「可編寫腳本」物件是類似於展示盒或一個平台(或許多其他可能性)有方法。 DisplayBox 有一個名為家長與 << 運算子一起使用來取得 DisplayBox 的父框。 ShowProperties 函數列出了 DisplayBox 所知道的所有方法。 您可以在腳本索引(說明選單下)中以更易於閱讀的形式查看這些內容。
當您的腳本顯示「期望可編寫腳本...」時,這表示 gb 變數不包含可編寫腳本的物件。
回覆:for循環的資料過濾器從你的評論來看,我相信你對克雷格發布的劇本有誤解。在他的程式碼中,一次開啟的圖形產生器實例絕不會超過 1 個。指向圖形建構器的指針,「gb」指向圖形建構器的目前執行。它創建圖形生成器輸出的圖片對象,並將其保存到文件中。然後它關閉圖形建構器物件(gb<
如果您的程式碼正在產生多個圖形產生器,並且每個生成器都使用“gb”作為指向圖形生成器實例的句柄,則“gb”僅指向最後一個圖形生成器實例。
回覆:for循環的資料過濾器嗨克雷格,
我確實實現了並開始擴展 for 循環。
我在存取或評估 'Send' 時收到此錯誤,Send Expects Scriptable Object{630},Report( gb ) << /*###*/parent/*###*/... 是不是因為開啟的視窗太多而JSL不知道我指的是哪個gb?回覆:for循環的資料過濾器謝謝克雷格回覆:for循環的資料過濾器dt = Open( "$sample_data/big class.jmp" );
ages = Data Table( "big class" ) << Summary( Group( :age ), Freq( "None" ), Weight( "None" ) );
sexes = Data Table( "big class" ) << Summary( Group( :sex ), Freq( "None" ), Weight( "None" ) );
Delete Directory( "$temp/myPics" );
Create Directory( "$temp/myPics" );
For( iage = 1, iage <= N Rows( ages ), iage++,
thisAge = ages:age[iage];
For( isex = 1, isex <= N Rows( sexes ), isex++,
thisSex = sexes:sex[isex];
Eval(
Eval Expr(
gb = dt << Graph Builder(
Size( 508, 438 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
where( age == Expr( thisAge ) & sex == Expr( thisSex ) )
)
)
);
parentBox = (Report( gb ) << parent)< picture = parentBox << getpicture;
picture << saveImage( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png", "png" );
// optional: Open( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png" );
gb << closewindow;
);
);
Close( ages, "nosave" );
Close( sexes, "nosave" );
Show( Files In Directory( "$temp/myPics" ) );
看起來您可能需要抓住圖形產生器的“祖父母”顯示框;父)<
screen capture of large icons of graphs saved by scriptscreen capture of large icons of graphs saved by script腳本儲存的圖形大圖示的螢幕截圖
回覆:for循環的資料過濾器是的,但是圖形產生器也接受 where 子句。
最好的,
中號
回覆:for循環的資料過濾器我相信該範例適用於 y x x 分佈。 我正在嘗試在圖形生成器中為樹形圖執行此操作。 我會嘗試一下。 謝謝你,M_安德森
回覆:for循環的資料過濾器你可以嘗試@Craige_Hales在這個問題上的回答——關聯。 與嘗試使用本機資料過濾器相比,在平台呼叫中新增 where 子句可能是一種更優雅的方式來完成您想要的操作。