你好,
我想從資料表中編寫一個堆疊長條圖,但我不知道該資料表的欄位是什麼。
1. 已建立包含所需列的資料表
2. 新增資料過濾器以選擇所需的行並排除剩餘的
2. 應根據第一列之後的每一列的可用行建立堆積長條圖。
3. 除了第一列之外,不知道列名稱和確切計數。
我為一組資料建立了一個堆積長條圖,如下所示。
我已經從圖形生成器複製了腳本,這就是它的外觀。
Graph Builder(
Size( 500, 590 ),
Variables(
X( :BIBID ),
Y( :Name( "Row %(Fail, Column2)" ) ),
Y( :Name( "Row %(Fail, Column3)" ), Position( 1 ) ),
Y( :Name( "Row %(Fail, Column4)" ), Position( 1 ) ),
Y( :Name( "Row %(Fail, Column5)" ), Position( 1 ) ),
Y( :Name( "Row %(Fail, Column6)" ), Position( 1 ) ),
Y( :Name( "Row %(Fail, Column7)" ), Position( 1 ) ),
Y( :Name( "Row %(Fail, Column8)" ), Position( 1 ) )
),
Elements(
Bar(
X,
Y( 1 ),
Y( 2 ),
Y( 3 ),
Y( 4 ),
Y( 5 ),
Y( 6 ),
Y( 7 ),
Legend( 4 ),
Bar Style( "Stacked" )
)
)
);
我的問題是如何透過 JSL 參數化 Graph Builder 下的變數 (Y) 和元素 (Y)?
Pass Fail BinPass Fail Bin通過 失敗箱
」我總是感到驚訝,包含註解和空白行的 52 行 JSL 可以做這麼多事情。 」 - 絕對地!
@mt7575 ,在寫劇本的時候有很多問題需要解答;例如,這是互動式顯示還是建立圖形並將其另存為 png ?到日記?到 PPTX? 您沒有提及您正在使用哪個版本的 JMP、您擁有哪個作業系統(MAC 和 Windows 語法存在一些差異),也沒有提及您的 JSL 技能等級。 在教授或撰寫有關 JSL 或任何腳本語言的文章時,有效的最佳方法是“了解您的工具”,這換句話說,您需要具備一些基本技能來編寫甚至維護其他人為您編寫的腳本。
附件是為互動式顯示編寫的腳本,用於選擇要繪製 X 中的項目和 Y 中的項目。它使用以下 JSL“工具”。 對於列出的每個您尚未編寫腳本的項目,您應該花時間在「幫助」>「腳本索引」中探索腳本、選項和訊息。
- 展示盒:FilterColSelector、ButtonBox、HListBox、VListBox、PanelBox、GraphBuilderBox
- 物件:GraphBuilder、DataFilter、表達式、資料表
如果不知道您的 JSL 技能,則使用附加表達式的 Go 按鈕來取代動態「OnChange」函數。
我花了一點時間寫這個腳本,因為顯示框 GraphBuilderBox 文件缺失JSL 伴侶,第二版。 ;腳本將用作本書附錄的範例。 所以我確實知道,有時很難識別所有可能可用的工具。 使用該腳本和範例資料表。 該腳本僅取決於資料表的第一列始終為 X 的事實。 請注意,從顯示中,選取“反向”以將資料過濾器用作“不使用”選項。
該腳本已在 Windows 作業系統上的 JMP PRO 12、13 和 14 上進行了測試。我總是感到驚訝,包含註解和空白行的 52 行 JSL 可以做這麼多事情。

嗨 ian_jmp,
謝謝回覆。 我附加了圖形生成器用於繪製堆積條形圖的範例資料。

Table.jpg 是顯示範例資料的螢幕截圖
JMP:
1. 我已套用資料篩選器來選擇列名稱包含 Fail 且具有非零值的行
2. 我已使用圖形產生器繪製了選定的行,其中 X 值是 BIB_ID,Y 值是所有失敗列
傑士林:
我想參數化上述步驟
1. 每次只會有BIB_ID列
2. 下一列名稱或編號。列數每次都會改變
目標:
1. 必須為 Table.jpg 中提到的資料類型編寫 JSL,以獲得上一篇文章中所附的堆疊長條圖。
如果您正在尋找工作代碼,因為每種情況都可能略有不同。一些範例數據將幫助人們讓您走上正確的道路。
要理解一般方法,我認為您需要將任務分解為兩個步驟,即獲取列,然後使用圖形生成器。 對於第一個,您可能需要一個“ColListBox()”(資料過濾器適用於行而不是列)。 在「說明 > 腳本索引」中尋找此內容。 對於第二步,由於 Graph Builder 功能非常強大,因此有很多選項,因此必要的 JSL 可能需要稍微小心。