Können Sie helfen, mehrere Streudiagramme mithilfe eines Skripts in eine Tabelle zu verwandeln?Hallo alle.
Mit diesem von mir erstellten Skript kann ich mehrere Streudiagramme in eine Tabelle drucken.
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 )}
),
)
);
Ich habe versucht, eine [for]-Funktion wie das folgende Skript zu verwenden.
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 )}
)
)
);
);
Das Skript erstellte jedoch Diagramme untereinander.
Bitte helfen Sie mir, eine Mehrfachstreuung mit der [for]-Funktion in eine Tabelle zu verwandeln ... T^T
AnalytikDatentabelleSkripterstellungBetreff: Können Sie helfen, mehrere Scatterplots mithilfe eines Skripts in eine Tabelle zu verwandeln?Ihr Rat ist sehr hilfreich für mich.
Danke, Dr. Jim!
Betreff: Können Sie helfen, mehrere Scatterplots mithilfe eines Skripts in eine Tabelle zu verwandeln?Ihr Vorschlag, wo Sie eine For()-Schleife verwenden möchten, ist wirklich nicht das, was benötigt wird.Wenn ich Sie richtig verstehe, möchten Sie eine Scatterplot-Matrix mit mehreren Y-Spalten und einer einzelnen x-Spalte erstellen.Dazu müssen Sie den Scatterplot-Code nicht durchlaufen. Alles, was Sie wirklich tun müssen, ist, eine Liste der gewünschten Spalten für Y zu erstellen und diese Liste dann einzufügen.Was nun das Hinzufügen von Spezifikationsgrenzen zu jedem der Diagramme betrifft, schlage ich vor, dass Sie eine unabhängige Tabelle mit den erforderlichen Grenzen erstellen und dann die Grenzen in die Datentabelle kopieren.Wenn die Daten dann verarbeitet werden, werden die Grenzen automatisch auf die verschiedenen Matrizen gesetzt.
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 )} ), )
);