Lorsque vous traitez avec des graphiques et des graphiques, nous aurons très probablement besoin de remplir les couleurs d'un graphique pour mettre en évidence une zone ou la distinguer d'autres formes. Vous savez peut-être comment ombrer des formes régulières, mais qu'en est-il polygones et contours irréguliers ? Vous pouvez faire cela facilement à toutes les formes graphiques en utilisant Polygon (). Nous avons juste besoin des points de données!

Ci-dessus, un graphique sur lequel je travaillais pour la prévision du recrutement des patients (recherchez un article de blog à ce sujet prochainement). Les lignes pointillées sont 2.5 th et 97,5 th centiles de 10 000 simulations. La ligne rouge continue représente la moyenne des valeurs simulées. Remplir de couleur cet intervalle de confiance aiderait les gens à comprendre la portée de la prévision d'inscription, alors j'ai exploré comment le faire. Au début, j'ai spécifié les trois sommets du triangle et obtenu ceci:

Hmm… pas tout à fait ce à quoi je m'attendais. Quel est le problème? Apparemment, ce graphique n’est pas exactement un triangle, bien qu’il en ressemble certainement à un. La partie inférieure est plus large et l’ombrage triangulaire ne peut donc pas couvrir toute la bande de l’intervalle de confiance. Comment pouvons-nous régler ceci?
Pour remplir un graphique de couleur, vous devez d’abord connaître le contour de votre forme et les points de données qui le constituent. Dans ce cas, mes limites sont les trois côtés du «triangle» et les points de données sont les 2,5. th percentiles et 97,5 th percentiles. Notez que je n'ai pas besoin du troisième côté, le segment de ligne horizontale, car une fois que je construis les deux côtés, JMP connecte automatiquement les deux points d'extrémité avec une ligne droite. Mais si vous avez un segment qui n'est pas rectiligne, vous aurez besoin de points de données pour indiquer à JMP où s'arrête l'ombrage.
Ensuite, dans JSL, nous extrayons les points de données de l'ensemble de données, les enregistrons dans des colonnes et les trions.
ds = Data Table( "graphbuilder" );
ds << sélectionnez où (: data == "Prévu 2,5%");
dslow = ds << sous-ensemble (
Nom de la table en sortie ("Centile inférieur"),
Lignes sélectionnées (1),
invisible
)
dslow_sort = dslow << sort (By (: time), Order (Ascending));
ds << sélectionnez où (: data == "Prévision 97,5%");
dsupp = ds << sous-ensemble (
Nom de la table en sortie ("Centile supérieur"),
Lignes sélectionnées (1),
invisible
)
dsupp_sort = dsupp << sort (By (: time), Order (Descending));
Les deux sous-ensembles, dslow et dsupp, contiennent des points de données de notre limite, les deux lignes en pointillés. Notez que j’ai trié dslow par ordre croissant, mais dsupp par ordre décroissant, car JMP trace la limite avec une direction. J'ai choisi de dessiner la bande d'IC dans le sens des aiguilles d'une montre: en partant du point d'intersection de la ligne bleue et des lignes rouges, en remontant le long de la ligne 2.5. th centile, et revenant après le 97,5 th centile du côté horizontal. Ainsi, les points de données du 97.5 th le centile doit être dans l'ordre décroissant.
Maintenant que nous avons trié les points de données, nous devons les rassembler dans une matrice appelée «tous». Les valeurs x dans la matrice sont «xall» et les valeurs y dans la matrice sont «yall». Ici, le temps est mon axe des x et le nombre est mon axe des y.
Col1 = Column( dslow_sort, "time" );
tl = col << GetAsMatrix;
Col1 = Column (dslow_sort, "nombre");
nl = col << GetAsMatrix;
Col2 = Column (dsupp_sort, "time");
tu = col << GetAsMatrix;
col2 = Column (dsupp_sort, "nombre");
nu = col << GetAsMatrix;
inférieur = tl || nl;
supérieur = tu || nu;
tout = inférieur | / supérieur;
xall = all [0,1];
yall = tout [0,2];
Pen Color( "red" );
Couleur de remplissage ("rouge");
Transparence (0,2);
Polygone (xall, yall);

La dernière étape est simple: appelez la matrice dans Polygon () et remplissez la couleur. Utilisez le code de la deuxième zone ci-dessus dans votre instruction Graph Builder ou dans une nouvelle fenêtre. Vous devriez maintenant avoir une bande de triangle parfaitement ombrée de rouge avec un certain degré de transparence!
Dernières pensées : Vous pouvez remplir n'importe quelle forme de zone avec de la couleur tant que vous avez les points de données. Vous trouverez ci-dessous un autre exemple d'ombrage de script graphique, qui illustre l'une des nombreuses variations que vous pouvez créer en modifiant les options.

Amusez-vous à ombrager!