Ajoutez des lignes de référence (permettant des plages, par variable de colonne) sur des pages séparées dans Graph Builder.J'ai plusieurs colonnes de données numériques, ainsi qu'une colonne datetime numérique continue, à la seconde près. Je peux tracer tout ou partie de ces éléments par date et heure dans une série chronologique pour les visualiser simultanément. Il existe une colonne nominale de caractère « groupe » que dans Graph Builder, je peux utiliser pour séparer l'analyse par page.
Il existe une autre colonne de date numérique continue « Date de l'événement » qui correspond au jour le plus proche (joint à partir d'une autre table) qui correspond à chaque valeur de « groupe ». Il y aurait une valeur unique de date d'événement pour une variable "groupe" donnée. Je voudrais automatiser ou ajouter par script des lignes de référence de la colonne "Date de l'événement" à l'axe des X, mais avec "Autoriser les plages", en définissant la valeur minimale comme date de l'événement à 00h00 et la valeur maximale comme date d'événement. Date de l'événement à 23:59:59 en fonction de la variable de colonne « groupe », avec l'intention que chaque « groupe » aille sur une page distincte. Vous trouverez ci-dessous un exemple de ce à quoi cela ressemblerait sur une page, ainsi que la boîte de dialogue Ligne de référence typique dans Paramètres d'axe dans Graph Builder pour référence :


Analyse et modélisation des données de baseExploration et visualisation des donnéesRe : Ajouter des lignes de référence autorisant des plages, par variable de colonne, sur des pages séparées dans Graph BuilderSi vous choisissez d'utiliser une boîte de dialogue pour configurer le générateur de graphiques

Vous pouvez utiliser une colonne By() plutôt que de la spécifier comme colonne Page. Lorsque vous effectuez cette opération, chaque sortie d'affichage de Graph Builder affichée peut avoir des lignes de référence de plage distinctes.

names default to here(1);
dt=
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
SendToByGroup( {:sex == "F"} ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
By( :sex ),
SendToByGroup(
{:sex == "F"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{100, 120},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
),
SendToByGroup(
{:sex == "M"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{140, 160},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
)
);Re : Ajouter des lignes de référence autorisant des plages, par variable de colonne, sur des pages séparées dans Graph BuilderMerci @txnelson .
Cela peut fonctionner, mais je me demande si, au lieu de spécifier manuellement la position des lignes de référence de chaque groupe, je pourrais appeler la colonne Date de l'événement pour définir les positions des lignes de référence d'une manière ou d'une autre. Est-ce réalisable ?Re : Ajouter des lignes de référence autorisant des plages, par variable de colonne, sur des pages séparées dans Graph BuilderPourriez-vous partager un exemple de vos données/créer une maquette de données ? Il peut y avoir des méthodes un peu plus délicates dans le générateur de graphiques pour y parvenir sans recourir aux scripts.
Re : Ajouter des lignes de référence autorisant des plages, par variable de colonne, sur des pages séparées dans Graph BuilderBien entendu, les plages de référence peuvent être définies en fonction des valeurs contenues dans d'autres colonnes ou à partir des résultats des plates-formes JMP. J'illustrais juste un moyen de rendre les différents niveaux de votre colonne Page référençables en passant à l'utilisation d'un By(). Vous trouverez ci-dessous une simple extension de l’exemple que j’ai fourni précédemment. Il définit la plage de la ligne de référence en fonction de la moyenne et de la norme de la colonne de l'axe X pour chacun des graphiques.

Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
// This example sets the range of the reference lines based upon the mean +- 1 std
// of the weight column for each level of the sex column
Summarize( dt, sexGroup = by( :sex ), means = Mean( :weight ), stds = Std Dev( :weight ) );
Eval(
Eval Expr(
Graph Builder(
SendToByGroup( {:sex == "F"} ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
By( :sex ),
SendToByGroup(
{:sex == "F"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{Expr( means[1] - stds[1] ), Expr( means[1] + stds[1] )},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
),
SendToByGroup(
{:sex == "M"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{Expr( means[2] - stds[2] ), Expr( means[2] + stds[2] )},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
)
)
)
);
Le langage de script (JSL) de JMP a la capacité de faire à peu près tout ce que vous envisagez de faire. Je vous suggère de prendre le temps de lire le Guide de script qui vous fournira les connaissances nécessaires pour que JSL puisse accomplir ce que vous voulez.