Chère communauté,
J'ai un peu de mal à dessiner des lignes de référence sur un axe ordinal. Il existe d'excellents exemples sur la façon de tracer des lignes de référence sur des axes continus, mais cela semble être différent pour les axes ordinaux. Ainsi, dans l'exemple ci-dessous, je ne peux pas dire à JMP de tracer une ligne de référence à l'âge de 13 ans, à la place, je dois trouver la position sur l'axe dans le GraphBuilder (c'est-à-dire deux : 13 est la deuxième valeur d'âge lors de la commande de bas en haut) et définissez la ligne de référence pour cette position. Jusqu'ici d'accord.
Mais je veux tracer des lignes de référence sur de nombreux objets Graph Builder, qui eux-mêmes ont des filtres de données locaux, et ont donc la même année, par exemple 13 à différentes positions. Vous pouvez essayer, si vous excluez age=12 par le filtre de données local, la ligne de référence est à la mauvaise position.
Donc, une meilleure stratégie serait que je puisse obtenir les valeurs de l'axe des x de l'objet Graph Builder, afin que je puisse correctement ajouter une ligne de référence à l'âge = 13 pour chaque Graph Builder.
Dans mon exemple du monde réel, je dois définir la ligne de référence pour chaque GraphBuilder dans un tableau de bord avec différents filtres à la semaine du calendrier en cours, qui est donnée dans un format "YYYYWW".
JMP16/Pro sur Win10.
Des idées? Merci d'avance
Names Default To Here( 1 );
// test reference lines for ordinal/nominal axis
// Open table and make graph
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
gb_obj = dt << graph builder( Show Control Panel( 0 ), variables( x( :age ), y( :weight ) ), Elements( bar( X, Y ) ) );
// get location of certain ordinal or nominal value from data table
refpos="13";
Summarize( dt, age_lst = by( :age ) );
label = Loc( age_lst, refpos );
// apply reference lines at different positions
Report( gb_obj )[AxisBox( 1 )] << add ref line( Eval( label - 1 ), "Dotted", "Red", refpos, 3 );