是否可以將資料篩選器/本地資料篩選器水平排列? (更改使用者介面)大家好,
我正在使用 JMP 中的資料篩選器,通常需要使用 10 多個篩選器。目前,所有篩選器都垂直排列在一個長列表中,我必須向下滾動很多才能應用篩選器,這感覺非常奇怪。
是否可以自訂資料篩選器使用者介面,使某些篩選器能夠水平排列成行(而不是像現在這樣排列成一長串垂直的下拉清單)?
感謝您的指導!
自動化和腳本編寫基礎資料分析與建模回覆:是否可以水平排列資料篩選器/本機資料篩選器? (更改使用者介面)我認為至少可以透過使用多個資料篩選器來復現這個問題。 我可以將資料篩選器排列成兩列嗎?您也可以嘗試透過大量操作顯示框來實現,但我沒有嘗試過(在這種情況下,我使用自訂資料篩選器)。
回覆:是否可以水平排列資料篩選器/本機資料篩選器? (更改使用者介面)
感謝您的回覆。理想情況下,應該使用單一資料過濾器而不是多個過濾器來實現此功能,因為資料過濾器的主要優勢在於其條件過濾能力。雖然使用多個過濾器可能是可行的解決方案,但我不太確定能否輕鬆地將上下文傳遞給內部過濾器以實現條件過濾。此外,使用者介面看起來也會非常糟糕。
我還注意到自訂資料篩選器存在一些限制(在組合框中進行了測試):
- 使用者介面問題:當列的值過大時,下拉式選單會變得過長,難以使用。即使只有一個較長的值也會出現這種情況。 (需要先對資料進行截斷或篩選,然後再將其顯示為下拉式選單,這比直接使用資料篩選更費時費力。)
- 效能問題:顯示數千筆記錄的速度極為緩慢。我嘗試了不同的方法(例如,透過匯總來獲取唯一值,以及使用哈希來識別列的唯一值),但都失敗了。
- 條件篩選的複雜性:如果有很多下拉列表,實現條件篩選需要編寫大量的程式碼,很快就會變得繁瑣。
回覆:是否可以水平排列資料篩選器/本機資料篩選器? (更改使用者介面)感謝您的回覆。
您能否分享一些範例程式碼,展示如何在組合方塊中顯示資料表中的列值,並實現條件判斷?
回覆:是否可以水平排列資料篩選器/本機資料篩選器? (更改使用者介面)略有不同的方法:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Size( 437, 787 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Add Filter(
columns( :sex, :height, :weight )
)
)
);
Current Report()["Local Data Filter", List Box( 6 )] << set Horizontal( 1 );
Current Report()[ List Box( 4 )] << set Horizontal( 0 );

回覆:是否可以水平排列資料篩選器/本機資料篩選器? (更改使用者介面)你想做什麼?需要滿足哪些條件?這些條件應該以什麼順序來應用?它們必須按順序應用,還是可以跳過某些條件?你可以修改主表(例如新增列/選擇)嗎?篩選器何時套用(立即套用/點擊按鈕後套用)? << 選擇具有限制條件的 WHERE 子句可能是相當簡單的選項
本機資料篩選器可以使用組合方塊(或類似選擇器)
Names Default To Here(1);
colcount = 3;
dt = Open("$SAMPLE_DATA/Car Poll.jmp");
dist = dt << Distribution(
Nominal Distribution(Column(:country)),
Local Data Filter(
Conditional,
Add Filter(
columns(:country, :size, :type),
Display(:country, N Items(3), "Single Category Display"),
Display(:size, N Items(3), "Single Category Display"),
Display(:type, N Items(3), "Single Category Display")
)
)
);
ldf_ob = (Report(dist) << Top Parent)[Outline Box("Local Data Filter")];
lub = ldf_ob[LineupBox(2)];
lub << N Col(colcount);
For(i = 1, i <= colcount, i++,
lub << Prepend(Spacer Box(Size(200, 0)));
);
Write();
回覆:是否可以水平排列資料篩選器/本機資料篩選器? (更改使用者介面)你覺得不用圖表產生器能行嗎?如果移除圖表產生器,你能隨心所欲地進行水平方向的圖表展示嗎?
回覆:是否可以水平排列資料篩選器/本機資料篩選器? (更改使用者介面)每個列錶框都有一個水平(0/1)標誌。
只需變更該標誌,即可將所有垂直排列的顯示物件清單變更為水平排列的顯示物件清單。
這裡有一個純資料過濾器的水平模式範例(不知道這是否有用)。
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
win = new window("test", dt << data Filter(
Add Filter(
columns( :height, :countries visited, :family cars )
)
));
win["Data Filter",ListBox(7)] << set horizontal(1)