Ajout dynamique de tracés de distribution à une tableJ'ai un tableau avec environ 180 colonnes de données.
J'aimerais ajouter dynamiquement un tracé de distribution (à la table) pour chaque colonne via une boucle for en JSL (avec un filtre de données local spécifique à chaque colonne).
Est-ce possible? Ce qui se passe lors de mes tentatives, c'est que tous les tracés joints sont la dernière valeur de la boucle for. Probablement quelque chose de simple qui me manque.
merci!
Automatisation et scriptsRe : Ajout dynamique de diagrammes de distribution à une tableC'est possible.Si vous pouvez joindre une version épurée de votre script, il sera plus facile et plus rapide de vous aider.
Re : Ajout dynamique de diagrammes de distribution à une tableJe ne sais pas exactement ce que vous recherchez.Voici un script simple qui crée toutes les distributions avec le filtre de données local.
Names Default To Here( 1 );
dt =
// Open Data Table: Blood Pressure.jmp
// → Data Table( "Blood Pressure" )
Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
ColNames = dt << get column names( string, numeric );
nw = New Window( "Distributions",
H List Box(
For Each( {Col}, ColNames,
Eval(
Eval Expr(
Distribution(
Continuous Distribution( Column( Eval( col ) ) ),
Local Data Filter( Add Filter( columns( Eval( col )) ) )
)
)
)
)
)
);

Re : Ajout dynamique de diagrammes de distribution à une tableVoici une version raccourcie :
Clear Log();
Clear Globals();
dt = current data table ();
myTests = {:Name ("Cont_VDD"), :Name ("Cont_OUTP")};
for (i=1, i<= 2, i++,
dt << Add Properties to Table(
{New Script(
"Distribution",
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( myTests[i] ) ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Outlier Box Plot( 0 ),
Process Capability( Use Column Property Specs )
)
)
});
);
Re : Ajout dynamique de diagrammes de distribution à une tableVotre script n'étoffe pas complètement le JSL requis pour permettre aux scripts de table de fonctionner.La référence de myTests doit être analysée dans le nom exact de la colonne pour que le script de table puisse s'exécuter correctement.Le JSL ci-dessous force l'expansion du code avant de l'enregistrer dans la table de données.J'ai également ajouté un filtre local et j'ai également modifié le code pour que le nom du script soit le nom de la colonne.
Names Default To Here( 1 );
Clear Log();
Clear Globals();
dt =
// Open Data Table: Blood Pressure.jmp
// → Data Table( "Blood Pressure" )
Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
myTests = dt << get column names( string, numeric );
For( i = 1, i <= N Items( myTests ), i++,
Eval(
Eval Expr(
dt << Add Properties to Table(
{New Script(
expr(myTests[i]),
Distribution(
Stack( 1 ),
Continuous Distribution( Column( Expr( myTests[i] ) ) ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Outlier Box Plot( 0 ),
Process Capability( Use Column Property Specs ),
Local Data Filter( Add Filter( columns( Expr( myTests[i] )) ) )
)
)}
)
)
)
);
Re : Ajout dynamique de diagrammes de distribution à une tableSi vous utilisez une variable globale dans le script de lancement de Distribution, celle-ci utilisera la valeur actuelle stockée dans la variable. Vous devez le convertir en valeur littérale pour le script de lancement.
Re : Ajout dynamique de diagrammes de distribution à une tablemerci beaucoup!!!J'ai appris moi-même le JSL... et j'ai rencontré quelques obstacles en cours de route... l'utilisation d'Eval est maintenant claire pour moi,... merci encore !
--Mat
Re : Ajout dynamique de diagrammes de distribution à une tableDe plus, si vous recherchez uniquement de simples histogrammes, à partir de JMP 15, un histogramme peut être affiché au-dessus de chaque colonne en sélectionnant simplement l'icône d'histogramme dans le tableau de données.
