Comment puis-je annoter l'arrière-plan avec différentes couleurs sur différents axes Y ?Le JSL suivant peut annoter la région de 100 à 120 sur l'axe X avec une couleur différente, mais il ne peut pas s'étendre sur différents axes Y. Comment puis-je le modifier pour annoter différentes variables sur les axes Y avec différentes couleurs d'arrière-plan pour différentes variables ?

Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height),Y(:age)),
Elements(Points(X, Y, Legend(3))),
SendToReport(
Dispatch(
{},
"weight",
ScaleBox,
{Add Ref Line(100, "Solid", "blue", "", 5),
Add Ref Line(120, "Solid", "blue", "", 5)}
)
)
);
rep = gb << report;
framebox = rep[frame box(1)];
framebox << Add Graphics Script(
Transparency(0.5);
Fill Color("Gray");
Rect(100, Y Origin() + Y Range(), 120, Y Origin() , 1)
);Exploration et visualisation des donnéesRe : Comment puis-je annoter l'arrière-plan avec différentes couleurs sur différents axes Y ?Vous disposez de plusieurs FrameBoxes lorsque vous avez plusieurs axes (ou groupes ou habillages ou pages), vous pouvez donc par exemple ajouter un script graphique distinct à chacun d'eux. Version simplifiée ci-dessous
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height), Y(:age)),
Elements(Points(X, Y, Legend(3)))
);
rep = gb << report;
fbs = rep << XPath("//FrameBox");
fbs[1] << Add Graphics Script(
Transparency(0.5);
Fill Color("Gray");
Rect(100, Y Origin() + Y Range(), 120, Y Origin(), 1);
);
fbs[2] << Add Graphics Script(
Transparency(0.5);
Fill Color("Green");
Rect(100, Y Origin() + Y Range(), 120, Y Origin(), 1);
);

Re : Comment puis-je annoter l'arrière-plan avec différentes couleurs sur différents axes Y ?Question supplémentaire : comment puis-je dessiner une zone de couleur si l'axe des X est de type de données « texte » ?
Par exemple, je souhaite marquer la gamme de TIM à JOE avec une couleur spécifique.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:name), Y(:height), Y(:age)),
Elements(Points(X, Y, Legend(3)))
);
rep = gb << report;
fbs = rep << XPath("//FrameBox");
fbs[1] << Add Graphics Script(
Transparency(0.5);
Fill Color("Gray");
Rect("TIM", Y Origin() + Y Range(), "JOE", Y Origin(), 1);
);
fbs[2] << Add Graphics Script(
Transparency(0.5);
Fill Color("Green");
Rect("TIM", Y Origin() + Y Range(), "JOE", Y Origin(), 1);
);Re : Comment puis-je annoter l'arrière-plan avec différentes couleurs sur différents axes Y ?Vous devez déterminer les valeurs correctes de l'axe des x, puis les utiliser
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:name), Y(:height), Y(:age)),
Elements(Points(X, Y, Legend(3)))
);
rep = gb << report;
fbs = rep << XPath("//FrameBox");
fbs[1] << Add Graphics Script(
Transparency(0.5);
Fill Color("Gray");
Rect(17, Y Origin() + Y Range(), 37, Y Origin(), 1);
);
fbs[2] << Add Graphics Script(
Transparency(0.5);
Fill Color("Green");
Rect(17, Y Origin() + Y Range(), 37, Y Origin(), 1);
);
Cela peut être facile ou parfois très difficile, mais vous pouvez vous faire une idée en vérifiant les paramètres et les étiquettes de l'axe X.

Re : Comment puis-je annoter l'arrière-plan avec différentes couleurs sur différents axes Y ?Comment puis-je utiliser JSL pour lire le mappage de LABEL et VALUE sur l'axe X actuel ? Je ne trouve pas de méthode pour lire le LABEL et la VALUE correspondante sur l'axe X actuel.
Je voudrais utiliser MATCH sur l'étiquette de texte pour obtenir la VALEUR, puis mettre en évidence la plage spécifique de valeurs avec une case colorée.
Re : Comment puis-je annoter l'arrière-plan avec différentes couleurs sur différents axes Y ?Si je me souviens bien... (actuellement) la méthode la plus simple est de le lire à partir du tableau de données à l'aide du tableau récapitulatif ou de Résumer.
Re : Comment puis-je annoter l'arrière-plan avec différentes couleurs sur différents axes Y ?Je voudrais marquer les couleurs sur l'axe X en fonction de la région sélectionnée par l'utilisateur. Cependant, l'axe X du graphique change en raison de l'utilisation par l'utilisateur d'un filtre de données local. Étant donné que la forme du texte de l'axe X est variable, je ne peux pas spécifier une valeur fixe et une correspondance d'étiquette. J'espère accéder directement aux étiquettes et aux valeurs sur l'axe X du graphique ou pouvoir déterminer la valeur et l'étiquette correspondantes sur l'axe X en fonction de la sélection de l'utilisateur sur le filtre de données local. Comme indiqué dans le script ci-dessous, je voudrais permettre à l'utilisateur de sélectionner le filtre de données local et de choisir en plus l'axe X à marquer avec des couleurs. S'il n'est pas possible d'obtenir les éléments actuellement affichés sur l'axe X du graphique ou les résultats sélectionnés sur le filtre de données local, il ne sera pas possible d'obtenir les valeurs et les étiquettes correspondantes de manière fluide. Existe-t-il un moyen d'y parvenir ?"Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:name), Y(:height), Y(:age)),
Elements(Points(X, Y, Legend(3))),
Local Data Filter(
Add Filter(
columns( :name ),
Where(
:name == {"ALFRED", "ALICE", "AMY", "BARBARA", "CAROL", "CHRIS",
"CLAY"}
),
Display( :name, N Items( 15 ), Find( Set Text( "" ) ) )
)
),
);
rep = gb << report;
fbs = rep << XPath("//FrameBox");
fbs[1] << Add Graphics Script(
Transparency(0.5);
Fill Color("Gray");
Rect(2, Y Origin() + Y Range(), 4, Y Origin(), 1);
);
fbs[2] << Add Graphics Script(
Transparency(0.5);
Fill Color("Green");
Rect(2, Y Origin() + Y Range(), 4, Y Origin(), 1);
); Re : Comment puis-je annoter l'arrière-plan avec différentes couleurs sur différents axes Y ?Si vous avez un filtre local à gérer, cela deviendra probablement plus compliqué. Quelle plage souhaitez-vous colorer ? Que se passe-t-il lorsque l'utilisateur filtre cette plage ou une de ses extrémités ?
Re : Comment puis-je annoter l'arrière-plan avec différentes couleurs sur différents axes Y ?Oui, cela devient plus complexe avec la présence du filtre de données locales. Par conséquent, j'aimerais savoir s'il existe des techniques permettant d'obtenir les éléments actuels sur l'axe des X du graphique ou de lire les options sélectionnées du filtre de données locales afin de calculer la table de mappage pour la valeur et l'étiquette actuelles.
Re : Comment puis-je annoter l'arrière-plan avec différentes couleurs sur différents axes Y ?Vous pouvez obtenir différents types de valeurs à partir du filtre de données local, puis les analyser/utiliser.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Car Poll.jmp");
dist = dt << Distribution(
Nominal Distribution(Column(:country))
);
ldf = dist << Local Data Filter(
Add Filter(columns(:sex), Where(:sex == "Female")),
Mode(Show(1), Include(1))
);
Show(ldf << get script, ldf << Get where clause, ldf << Get Filtered Rows);

N'oubliez pas de vérifier le cas particulier où aucune ligne n'est filtrée