Pouvez-vous aider à transformer plusieurs diagrammes de dispersion en une table à l'aide d'un script?Bonjour à tous.
Je peux imprimer plusieurs nuages de points dans un tableau en utilisant ce script que j'ai créé.
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 )}
),
)
);
J'ai essayé d'utiliser la fonction [for] comme le script ci-dessous.
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 )}
)
)
);
);
cependant, le script s'est fait des graphiques.
Aidez-moi à faire un nuage de points multiple dans un tableau en utilisant la fonction [for] ... T ^ T
AnalytiqueTableau de donnéesScriptingRe: Pouvez-vous aider à faire plusieurs nuages de points dans une table en utilisant un script?Votre proposition pour l'endroit où vous souhaitez utiliser une boucle For (), n'est vraiment pas ce qui est nécessaire. Si je vous comprends bien, ce que vous voulez, c'est produire une matrice de nuage de points avec plusieurs colonnes Y et une seule colonne x. Pour ce faire, vous n'avez pas besoin de parcourir le code du nuage de points, tout ce que vous devez vraiment faire est de créer une liste de colonnes que vous souhaitez pour les Y, puis de brancher cette liste. Concernant maintenant l'ajout de limites de spécification à chacun des graphiques, je vous suggère de créer un tableau indépendant avec les limites requises, puis de copier les limites dans le tableau de données. puis lorsque les données sont traitées, les limites seront automatiquement placées sur les différentes matrices.
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 )} ), )
);
Re: Pouvez-vous aider à faire plusieurs nuages de points dans une table en utilisant un script?Vos conseils me sont très utiles.
Merci, Dr jim!