這樣做的方法是簡單地
- 堆疊列
- 創建一個對數據進行分組的新列
- 以分組列作為 X 軸運行圖形生成器

下面是一個使用 JSL 的示例,但是腳本中的每個步驟都可以輕鬆地以交互方式完成。請參閱下面的腳本
names default to here(1);
// Create a sample data table for illustration
dt=new table("TO_CPTO_C",
add rows(5),
new column("A.1", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("A.2", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("A.3", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("A.4", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("A.5", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("A.6", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("B.1", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("B.2", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("B.3", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("B.4", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("C.1", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("C.2", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("C.3", formula(randomuniform(70,140)),format("fixed dec",6,2)),
new column("C.4", formula(randomuniform(70,140)),format("fixed dec",6,2))
);
// Pause so one can see initial data table before moving on
Wait( 5 );
// Stack the columns
// Tables==>Stack
dtStack = dt << Stack(
columns(
:A.1,
:A.2,
:A.3,
:A.4,
:A.5,
:A.6,
:B.1,
:B.2,
:B.3,
:B.4,
:C.1,
:C.2,
:C.3,
:C.4
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);
// Pause so one can see stacked data table before moving on
Wait( 5 );
// Create a grouping column
dtStack << New Column("Group", character, formula( left(:Label,1 )));
// Pause so one can see new column before moving on
Wait( 5 );
// Create the Graph, using the Group column as the X axis and Data as the Y axis
dtStack << Graph Builder(
Size( 534, 450 ),
Show Control Panel( 0 ),
Variables( X( :Group ), Y( :Data ) ),
Elements( Box Plot( X, Y, Legend( 3 ) ) )
);