💻 JSL 打造 JMP 互動視覺化:從腳本到洞察

JSL (JMP Scripting Language) 是實現 JMP 強大**互動視覺化**功能的關鍵。透過 JSL,您可以不僅是繪製靜態圖表,而是編程控制數據探索的流程,創建自動化且高度客製化的互動式分析工具。

✨ JSL 核心互動元素編程

以下是 JSL 如何呼叫並控制 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 ) ) ) // 加入擬合線作為互動分析元素
)
)
);

💡 進階範例:多圖表類型控制 (Graph Builder)

JSL 可以編程控制 Graph Builder 輸出不同的圖表類型,用於多變量探索:

1. 矩陣散點圖 (Scatterplot Matrix) - 探索所有連續變數的兩兩關係

// 程式碼自動生成多變量散點圖矩陣

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 ) )
);

2. 箱形圖 (Box Plot) - 依據類別變數的數值分佈

// 程式碼自動繪製箱形圖,觀察不同品種的花瓣寬度分佈

dt = Open("$SAMPLE_DATA/Iris.jmp");
Graph Builder(
Variables( X( :Species ), Y( :Petal width ) ),
Elements( Box Plot( X, Y ) )
);

3. 地圖視覺化 (Map Chart) - 需包含地理資訊變數

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 ) )
);

🚀 JSL 實現互動視覺化的優勢


透過 JSL,您可以將重複的數據探索步驟轉化為一鍵執行的智能應用,真正釋放 JMP 在互動數據分析中的強大力量!