JSL (JMP Scripting Language) 是實現 JMP 強大**互動視覺化**功能的關鍵。透過 JSL,您可以不僅是繪製靜態圖表,而是編程控制數據探索的流程,創建自動化且高度客製化的互動式分析工具。
以下是 JSL 如何呼叫並控制 JMP 中主要的互動式功能:
Graph Builder() 函數,精確控制變數的拖放位置、圖表類型和疊加元素。Data Filter( Add Filter(...) ) 函數,在腳本中加入可調整的篩選工具,讓使用者即時過濾圖表數據。Current Data Table() << Select Rows(...) 實現腳本選取數據,並透過 JMP 的內建連結特性,讓選取的數據在所有圖表中同步高亮。這個 JSL 腳本展示了如何自動開啟數據表,並創建一個具備即時篩選功能的互動式「圖形產生器」報表:
// 1. 開啟範例數據表
dt = Open("$SAMPLE_DATA/Big Class.jmp");
New Window( "身高體重互動分析",
H List Box(
// A. 局部數據篩選器,讓使用者可即時調整
Data Filter(
Add Filter( columns( :age, :sex ) )
),
// B. 圖形產生器設置 (散點圖 + 擬合線)
Graph Builder(
Size( 550, 450 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Point( X, Y ), Line Of Fit( X, Y, Legend( 6 ) ) ) // 加入擬合線作為互動分析元素
)
)
);
JSL 可以編程控制 Graph Builder 輸出不同的圖表類型,用於多變量探索:
// 程式碼自動生成多變量散點圖矩陣
dt = Open("$SAMPLE_DATA/Iris.jmp");
Graph Builder(
Variables( X( :Sepal length ), X( :Sepal width ), X( :Petal length ), X( :Petal width ) ), // 多個 X 變數
Elements( Point( X, Y ) )
);
// 程式碼自動繪製箱形圖,觀察不同品種的花瓣寬度分佈
dt = Open("$SAMPLE_DATA/Iris.jmp");
Graph Builder(
Variables( X( :Species ), Y( :Petal width ) ),
Elements( Box Plot( X, Y ) )
);
JMP 支援地圖形狀檔案,JSL 可以將數據視覺化投射到地圖上,增加地理維度的互動性。
// 程式碼呼叫 Map Shape 檔案並繪製地圖
// 假設數據表 dt 包含 "Country" 欄位
dt = Open("$SAMPLE_DATA/Country Demographics.jmp");
Graph Builder(
Variables( Map Shape( :Country ), Color( :Population ) ), // 將人口數值映射為顏色
Elements( Map Shape( Map Shape ) )
);
New Window() 和 Dialog() 函數,搭配按鈕、滑塊等元件,創建比內建菜單更符合業務流程的客製化互動工具。透過 JSL,您可以將重複的數據探索步驟轉化為一鍵執行的智能應用,真正釋放 JMP 在互動數據分析中的強大力量!