🐬Spotfire 為什麼突然沒有 BIN 值與圖表不顯示?工程師用「縮排、欄位來源、過濾條件」三招快速定位(含 IronPython 範例)
在 Tibco Spotfire 裡做良率(Yield)或 BIN 分佈分析時,最常見也最讓人抓狂的狀況之一,就是: 表格(TablePlot)突然看不到 BIN 欄位 圖表(Chart)突然空白 你明明知道資料有回來,但畫面就是不出來 腳本還可能報 unexpected indent 、或是印出一堆 debug 訊息卻看不出問題在哪 這篇文章用「軟體工程師的除錯方式」,用簡單白話把問題拆成 3 類,並用可套用在任何 Spotfire 專案的方式,教你快速定位「BIN 不見」的真正原因。 一、Spotfire 的 BIN 不見,其實通常不是「沒資料」,而是「你拿錯地方的欄位」 很多人直覺以為: 圖表不顯示 = 資料表沒資料 但在 Spotfire 的腳本世界裡,另一個超常見真相是: 資料表其實有資料、有 BIN 欄位 只是你從「視覺物件的參照」去拿欄位,而不是從「真正的資料表」去拿欄位 結果判斷條件永遠成立不了 → BIN 就永遠加不回去 什麼是「視覺物件的參照」? Spotfire 的 TablePlot / Chart 會有一種像「指向資料的指標」的東西(概念上類似捷徑),它可能還停留在舊的 view、舊的欄位集合,或欄位字串格式跟你想像的不一樣。 工程師的做法是: 用「資料表」做欄位判斷 用「視覺物件參照」做欄位加入(AddColumn) 二、為什麼你「明明印得出 BIN 欄位清單」,最後卻又變成空? 你可能會遇到這種除錯輸出: 你先印出:有 BIN1, BIN2, BIN3... 但你最後算出來要顯示的 binColumns 卻是空的 這常見原因不是資料突然消失,而是你的判斷式像這樣: 把欄位物件轉成字串 str(col) 去判斷是否 startswith("BIN") 但 str(col) 根本不是欄位名(可能是 ColumnRef(...) 這類描述字串) 三、第二個大地雷:過濾條件把資料「全部清光」但你沒發現 另一種超常見的 BIN 消失原因,是你後面加了某種過濾: 只保留「Rate% > 0.01」 只保留「選到的 BIN」 只保留「某個欄位不是空」 如果你寫得太嚴格、或欄位名...