你能幫助使用腳本將多個散點圖製作成一個表格嗎?大家好。
我可以使用我製作的這個腳本將多個散點圖打印到表格中。
Names Default To Here( 1 );
dt = Open( "$Sample_Data/Big Class.jmp" );
dt = Current Data Table();
For( i = 4, i <= N Cols( dt ), i++,
Column( dt, i ) << data type( numeric );
Column( dt, i ) << set modeling type( continuous );
);
address = Current Data Table();
Scatterplot Matrix(
Y(
:Column(address, 4),
:Column(address, 5)
),
X( :Column(address, 2) ),
Fit Line( 0 ),
SendToReport
(
Dispatch
(
{},
"1100",
ScaleBox,
{
Add Ref Line( :Column(address, 4)[2], "Solid", "Medium Dark Blue", "LSL", 1 ),
Add Ref Line( :Column(address, 4)[3], "Solid", "Medium Dark Blue", "USL", 1 )
}
),
Dispatch
(
{},
"1101",
ScaleBox,
{
Add Ref Line( :Column(address, 5)[2], "Solid", "Medium Dark Blue", "LSL", 1 ),
Add Ref Line( :Column(address, 5)[3], "Solid", "Medium Dark Blue", "USL", 1 )
}
),
Dispatch(
{},
"Scatterplot Matrix Plot",
FrameBox,
{Frame Size( 600, 200 )}
),
)
);
我嘗試使用 [for] 函數,如下面的腳本。
Names Default To Here( 1 );
dt = Open( "$Sample_Data/Big Class.jmp" );
dt = Current Data Table();
For( i = 4, i <= N Cols( dt ), i++,
Column( dt, i ) << data type( numeric );
Column( dt, i ) << set modeling type( continuous );
);
address = Current Data Table();
For( i = 4, i <= 5, i++,
Scatterplot Matrix(
Y(
:Column(address, i)
),
X( :Column(address, 2) ),
Fit Line( 0 ),
SendToReport
(
Dispatch
(
{},
"1100",
ScaleBox,
{
Add Ref Line( :Column(address, i)[2], "Solid", "Medium Dark Blue", "LSL", 1 ),
Add Ref Line( :Column(address, i)[3], "Solid", "Medium Dark Blue", "USL", 1 )
}
),
Dispatch(
{},
"Scatterplot Matrix Plot",
FrameBox(i),
{Frame Size( 600, 200 )}
)
)
);
);
但是,腳本彼此製作了圖表。
請幫助我使用 [for] 函數將多個分散到表中... T^T
分析數據表腳本回复:你能幫助使用腳本將多個散點圖製作成一個表格嗎?你的建議對我很有幫助。
謝謝你,吉姆博士!
回复:你能幫助使用腳本將多個散點圖製作成一個表格嗎?您對要在何處使用 For() 循環的建議確實不是所需要的。如果我對您的理解正確,您想要的是生成一個包含多個 Y 列和一個 x 列的散點圖矩陣。為此,您不需要遍歷散點圖代碼,您真正需要做的就是創建一個您想要的 Y 列列表,然後插入該列表。現在關於為每個圖表添加規格限制,我建議您創建一個具有所需限制的獨立表,然後將限制複製到數據表中。然後在處理數據時,限制將自動放置在各種矩陣上。
Names Default To Here( 1 );
dt = Open( "$Sample_Data/Blood pressure.jmp" );
// Create a list of all of the columns one wants for Y values in the
// scatterplot matrix
colNamesList = dt << get column names( continuous );
// Here is the limits table. This can be just a saved data table that is
// opened in the script. It does not have to be a table built in a script
dtLimits = New Table( "Limits",
Add Rows( 9 ),
New Column( "Variable",
Character,
"Nominal",
Set Values( {"BP 8M", "BP 12M", "BP 6M", "BP 8W", "BP 12W", "BP 6W", "BP 8F", "BP 12F", "BP 6F"} )
),
New Column( "LSL",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [175, 175, 175, 171, 173, 171, 172, 174, 172] )
),
New Column( "USL",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [180, 185, 185, 187, 190, 180, 185, 188, 186] )
),
New Column( "Target", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [., ., ., ., ., ., ., ., .] ) ),
New Column( "Show Limits",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values( [1, 1, 1, 1, 1, 1, 1, 1, 1] )
)
);
// Add the limits from the limits data table to the data table with the
// data values in it
For( i = 1, i <= N Rows( dtLimits ), i++,
Eval(
Substitute(
Expr(
Column( dt, dtLimits:Variable[i] ) << set property(
"spec limits",
{LSL( __LSL__ ), USL( __USL__ ), show limits( 1 )}
)
),
Expr( __LSL__ ), dtLimits:LSL[i],
Expr( __USL__ ), dtLimits:USL[i]
)
)
);
// Create the Scatterplot Matrix
dt << Scatterplot Matrix(
Y(
Eval( colNamesList )
),
X( :Column( dt, 2 ) ),
Fit Line( 0 ),
SendToReport( Dispatch( {}, "Scatterplot Matrix Plot", FrameBox, {Frame Size( 600, 200 )} ), )
);