Définition d'un dégradé de couleurs personnalisé dans la carte thermique de Graph Builder avec JSLJ'ai un modèle avec huit facteurs et quatre réponses. J'aimerais créer une carte thermique montrant quels facteurs sont significatifs pour quelles réponses.J'aimerais pouvoir définir ma propre gamme de couleurs, par exemple :
<0,0001 à 0,01 = orange
0,001 à 0,05 = rouge
> 0,05 = blanc
J'ai joué avec le dégradé dans Graph Builder mais je ne vois pas comment faire ce que je veux. Peut-être que ce n'est même plus techniquement un gradient, mais il semble que cela devrait être possible.L'image ci-dessous est aussi proche que possible.

Voici un extrait de script. L'ensemble de données complet avec le script enregistré est joint.
gradient(
{Color Theme( "Green Yellow Red" ), Scale Values( [0 0.05 .] ),
Width( 9 ), Range Type( "Exact Data Range" ),
Reverse Gradient( 1 ), Discrete Colors( 1 ),
N Labels( 5 )}
)
Toute suggestion serait appréciée.
-À M
Re : Définir un dégradé de couleurs personnalisé dans la carte thermique du générateur de graphiques avec JSLGénial, merci pour l'explication détaillée Tom!
Re : Définir un dégradé de couleurs personnalisé dans la carte thermique du générateur de graphiques avec JSLSalut Kira,
Merci pour votre aide.Cela m'a vraiment aidé à arriver là où j'essayais d'aller.
J'ajouterai un peu plus de détails sur la façon de procéder pour les autres qui pourraient essayer quelque chose de similaire, car je n'ai trouvé aucun détail dans la documentation JMP.
Si vous faites un clic droit sur la légende de la carte thermique, sélectionnez Dégradé, puis cliquez sur le thème de couleur, puis sur le twisty pour ouvrir "Thème de couleur personnalisé".C'est la configuration qui a fini par fonctionner pour moi.

Il apparaît ici qu'il n'y a que quatre points définissant le gradient à 0, 10, 50 et 100 %, mais ce n'est pas vrai.Si vous ne définissez que ces quatre points, vous obtiendrez des dégradés entre eux, par exemple du rouge à l'orange de 0 à 10 %. Si vous voulez passer du rouge à l'orange à 10 %, vous devez définir à la fois un point rouge et un point orange à 10 %.L'interface utilisateur n'affiche qu'un seul marqueur car nous l'utilisons pour quelque chose pour lequel il n'a pas été conçu.
Pour obtenir trois gammes de couleurs discrètes, vous devez définir six points, même si vous n'en voyez que quatre ci-dessus en raison du chevauchement.Bien que la visualisation ci-dessus soit utile après coup , je ne pouvais pas l'utiliser pour obtenir ce que je voulais en déplaçant les curseurs. J'ai dû le scripter directement. Voici à quoi ressemblait mon code:
{Color Theme(
{"White to Red p-Value", 2051,
/*0%->red 10%->red 10%->orange 50%->orange 50%->white 100%->white */
{{255,0,0},{255,0,0},{255,165,0},{255,165,0},{255,255,255},{255,255,255}},
{.0000 , 0.1 , 0.1 , 0.5 , 0.5 , 1 }
}Comme l'a souligné Kira, le facteur d'échelle est important pour bien faire les choses. Les valeurs du thème de couleur vont de 0 à 1 (0 à 100% de l'échelle définie).Le facteur d'échelle "mappe" l'échelle de couleurs à votre variable particulière - dans mon cas, 0 à 0,1.
Je peux penser à d'autres cas où je veux prendre des données continues et les mapper sur des étapes de couleur et non sur des dégradés, alors peut-être existe-t-il une meilleure façon de le faire dans JMP ou juste un paramètre qui me manque. (Je l'ai également fait comme Kira l'a suggéré, en créant une nouvelle colonne - c'est certainement une option raisonnable aussi.)
Ma sortie finale ressemble à ceci, avec les ratios F affichés dans chaque cellule :

Dans le fichier joint se trouve l'ensemble de données d'origine. Le premier script exécute le modèle. La seconde entre dans le rapport, extrait les valeurs p et les ratios f et crée la carte thermique.J'aimerais comprendre suffisamment la navigation dans les arborescences de rapports pour rendre ce script de carte thermique suffisamment "intelligent" pour trouver le tableau "Effects Test" où qu'il se trouve dans le rapport.Dans l'état actuel des choses, c'est codé en dur, donc le script ne fonctionnera probablement qu'avec ce rapport particulier.
dt_pvals = report(fls)[outlinebox(1)][TableBox(6)] << make combined data table;
Je pense que cela pourrait être un outil de visualisation utile lorsque vous travaillez avec plusieurs facteurs et réponses.
-À M
Re : Définir un dégradé de couleurs personnalisé dans la carte thermique du générateur de graphiques avec JSLBonjour Tom!
Vous pouvez définir vos propres thèmes de couleurs dans JMP. Essayez quelque chose comme ceci :
Preferences( Add Color Theme(
{"White to Red p-Value", 2051, {{255, 255, 255}, {255, 255, 255}, {252, 187,
161}, {252, 146, 114}, {251, 106, 74}, {239, 59, 44}, {203, 24, 29}, {165,
15, 21}, {103, 0, 13}}, {0, 0.95, 0.96,
0.97, 0.98, 0.99, 0.995,
0.999, 1}}
),
);Les couleurs sont codées en valeurs RVB (par exemple {255, 255, 255} est blanc) et les incréments qui vous intéressent sont donnés à la fin (par exemple, les premiers 95 % de l'échelle de couleurs seront blancs tels qu'ils sont définis actuellement). Il s'agit d'un premier brouillon, vous devrez donc peut-être modifier les incréments ou les couleurs comme vous le souhaitez. Notez que cela créera un nouveau thème de couleur que vous pourrez utiliser dans n'importe quel graphique. Dans le graphique, assurez-vous d'inclure "min" et "max" pour l'échelle de couleurs, sinon ce dégradé ne commencera pas à devenir orange à 0,05 :
gradient(
{Color Theme(
{"White to Red p-Value", 2051, {{255, 255, 255}, {255,
255, 255}, {252, 187, 161}, {252, 146, 114}, {251, 106,
74}, {239, 59, 44}, {203, 24, 29}, {165, 15, 21}, {103,
0, 13}}, {0, 0.95, 0.96, 0.97, 0.98, 0.99, 0.995, 0.999,
1}}
), Scale Values( [0 1] ), Reverse Labels( 1 )}
)Cependant, une remarque d'un statisticien : en fait, peu importe la taille de la valeur de p dès qu'elle est inférieure au seuil (par exemple, 0,05). La seule chose qui devrait vous intéresser est : Est-ce significatif (par exemple moins de 0,05) ou non. Ainsi, une colonne de formule simple indiquant si la valeur p est inférieure à 0,05 ou non et la coloration par cela devrait parfaitement convenir à votre application.
J'espère que cela pourra aider!
Kira