我現在有一個問題:有一個JMP表,然後選擇一行後,需要自動繪製直方圖。 也就是說,不同的行會出現不同的直方圖,當檢測到數據異常時,改變行的值後,圖表應該自動更新。
但現在我已經搜索過,只有 dt<
更改也不適用於 JMP 表。
例如:設置行更改函數()用於tablebox。
謝謝
我很難理解您的數據是如何排列的,以及如何從單行數據生成直方圖。
您能否提供數據表的示例或更具體的描述,以及用於生成直方圖的方法?
根據行選擇的更改觸發的典型方法是使用
創建行狀態處理程序
行選擇的任何更改都將運行放置在行狀態處理程序中的任何腳本。
我還將向您介紹數據過濾器或列切換器的使用。JMP 中的這兩個功能均可用於選擇特定數據,然後將所選數據應用到一個或多個顯示。
我的原始表只是很多數據值,一些明顯錯誤的需要手動更改,並帶有動態顯示圖像
Names Default To Here( 1 );
dt = Current Data Table();
//Get the row number of the selected row in the current table
While( 1,
r = dt << get selected rows();
dt1 = New Table( "w", New Column( "x", set values( dt[r, 1 :: 13] ) ) );
dt1 << Distribution(
Stack( 1 ),
Continuous Distribution( Column( :x ), Horizontal Layout( 1 ), Vertical( 0 ) )
);
//Check if there is a change in the selected row number in the original table, and redraw the diagram if it has changed
If( (r1 = dt << get selected rows()) != r,
dt1 = New Table( "w", New Column( "x", set values( dt[r1, 1 :: 13] ) ) );
dt1 << Distribution(
Stack( 1 ),
Continuous Distribution( Column( :x ), Horizontal Layout( 1 ), Vertical( 0 ) )
);
);
//Check if any values in the original table have been modified, and if so, redraw the graphs
If( (r2 = dt << get selected rows()) == r | (r2 = dt << get selected rows()) == r1,
If( dt[r, 1 :: 13] != dt[r2, 1 :: 13] | dt[r2, 1 :: 13] != dt[r1, 1 :: 13],
dt1 = New Table( "w", New Column( "x", set values( dt[r1, 1 :: 13] ) ) );
dt1 << Distribution(
Stack( 1 ),
Continuous Distribution( Column( :x ), Horizontal Layout( 1 ), Vertical( 0 ) )
)
;
)
);
如果您必須以以行為中心的方式佈置數據,那麼我相信您最好的選擇是使用行狀態處理程序。但是,如果您轉換為以列為中心的結構,您將更好地適應 JMP 的正常操作。當您更改數據表中的數據時,您生成的任何直方圖都會自動更新。 為此,所需要做的就是為分發平台設置 Autocalc 選項。
您可以輕鬆創建一個簡單的選擇器窗口,像現在選擇行一樣選擇列,一旦選擇,您的腳本就可以根據需要生成直方圖。
謝謝吉姆!這很有幫助。
這個原始數據表是從數據庫自動下載的,即按行;
除了設置行處理程序()的行之外,我還可以實時獲取行號,
那麼對於手動修改的號碼,如何實時獲知呢?
我也使用autocal(1),我更改了值,但分發平台不會自動更改。