Graph Builder Ajouter dynamiquement des valeurs p : flux de travail recommandéBonjour la communauté JMP,
J'ai souvent besoin d'annoter les tracés de Graph Builder (~ 200) avec les résultats d'une analyse (par exemple, valeurs p. Estimations). Jusqu'à présent, je me suis principalement appuyé sur des annotations manuelles mais je commence à en avoir marre de cette approche. Je sais comment ajouter du texte de manière dynamique via des scripts mais je n'ai pas trouvé de bon moyen de résoudre mon problème spécifique (voir ci-dessous)
Quel serait votre flux de travail recommandé dans le cas suivant :
Données graphiques : ~200 colonnes contenant les valeurs Y (~1 000 lignes) ; Données X définies dans 1 colonne, données superposées dans 1 colonne, donnant 200 tracés
Résultats de l'analyse : 1 ligne par valeur Y, colonnes contenant la valeur p, les estimations et d'autres résultats d'analyse possibles.
Remarque : L'automatisation a été un défi car les données initiales sont toujours légèrement différentes d'un lot à l'autre.
Mon principal problème est que les tableaux de données graphiques et de résultats d'analyse sont organisés orthogonalement (Y en colonnes contre Y en lignes), ce qui nécessiterait de transposer le tableau de résultats, de diviser le tableau résultant par sorties d'analyse (valeurs p, estimations,...) et connectez le tableau résultant à la table graphique. Cela ne semble pas très efficace, donc toute suggestion serait la bienvenue.
Merci.
TS
Ingénierie Qualité et ProcédésPartager et communiquer les résultatsRe: Graph Builder Add p Values dynamically: workflow recommandéEn règle générale, JMP facilite la réorganisation des données et «inefficace» est un terme relatif. Si je comprends bien, vous souhaitez ajouter certains résultats d'une plate-forme (d'analyse) à ceux d'une autre plate-forme (graphique). Le meilleur flux de travail dépendra des détails.
Le script ci-dessous rend certaines données aléatoires conformes à ce que vous dites ci-dessus. Si vous pouviez l'exécuter, puis publier le script qui reproduira les résultats de vos deux plates-formes choisies, les gens seront mieux en mesure de donner des recommandations plus spécifiques.
NamesDefaultToHere(1);
// Make a data table
nr = 1000;
y = J(nr, 200, RandomNormal());
x = J(nr, 1, RandomUniform(1, 10));
o = J(nr, 1, RandomInteger(1, 6));
dt = AsTable(x||o||y);
dt << setName("Test");
Column(dt, 1) << setName("X");
Column(dt, 2) << setName("Overlay");Re: Graph Builder Add p Values dynamically: workflow recommandéTrouvez 3 fichiers joints:
- Table de données d'entrée telle que générée avec votre script (modification mineure)
- Un exemple de table OUTPUT
- Un exemple de journal PLOTS
Merci d'avoir étudié cela.
Meilleures salutations,
TS
Re: Graph Builder Add p Values dynamically: workflow recommandéJe suis sûr que tout le monde aborderait cela différemment. Mais si les deux tableaux ci-dessus sont votre point de départ, je ferais quelque chose comme ceci:
NamesDefaultToHere(1);
// Data tables
data = DataTable("Test WORKFLOW.jmp");
stats = DataTable("Test WORKFLOW RESULT TABLE.jmp");
// Template expression for Graph Builder with text annotation
gbExpr =
Expr(
data << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :X ), Y( yTBD ), Overlay( :Overlay ) ),
Elements(Line(X, Y, Legend( 12 ), Error Interval( "None" ))),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Graphics Script( 2, Description( "Annotation" ), Text( {8, 0}, "interaction P Val: "||Char(Round(pValTBD, 3))))}
)
)
)
);
// Loop over 'Y' variables
lub = LineUpBox(NCol(1));
for(c=3, c<=NCol(data), c++,
yCol = Column(data, c);
pVal = Column(stats, 2)[c-2];
lub << append(Eval(Substitute(NameExpr(gbExpr), Expr(yTBD), yCol, Expr(pValTBD), pVal)));
);
// Reports in a Journal
nw = NewWindow("Report", <<JOURNAL></JOURNAL>
Vous devriez être en mesure de développer ce plan en fonction de votre cas. Vous pouvez également essayer d'inclure une logique pour placer l'annotation dans un «meilleur» endroit. Si vous ne savez pas comment cela fonctionne, consultez 'Aide> Guide de script' et le livre JSL.