Salut tout le monde,
Dans mon script actuel, les sites individuels sont définis avec une certaine couleur sur la légende, mais le faire ainsi ne sera pas conservé si les « sites » sont étiquetés différemment. Je pensais que peut-être « cellule de couleur » pourrait changer toutes les cellules en une seule couleur, mais j'ai des problèmes.
Comment écririez-vous une couleur unique pour toutes les cellules ?
Taille (879, 653),
Afficher le panneau de configuration (0),
Variables( X( :SiteX ), Y( :SiteY ), Couleur( :Site ) ),
Éléments (Carte thermique (X, Y, Légende (44), Étiquette ("Étiquette par valeur" ), Thème de couleur ("Solide", "gris") ) ),
Filtre de données locales (Fermer le contour (1)),
EnvoyerAuRapport(
Dispatch( {}, "SiteX", ScaleBox, {Label Row( Afficher la grille principale( 1 ) )} ),
Dispatch( {}, "SiteY", ScaleBox, {Label Row( Afficher la grille principale( 1 ) )} ),
Envoi( {}, "400", ScaleBox,
{Modèle de légende(
44,
Propriétés( 0, {Couleur de remplissage( 32 )}, ID de l'élément( "01", 1 ) ),
Propriétés( 1, {Couleur de remplissage( 32 )}, ID de l'élément( "02", 1 ) ),
Propriétés( 2, {Couleur de remplissage( 32 )}, ID de l'élément( "03", 1 ) ),
Propriétés( 3, {Couleur de remplissage( 32 )}, ID de l'élément( "04", 1 ) ),
Propriétés( 4, {Couleur de remplissage( 32 )}, ID de l'élément( "05", 1 ) ),
Propriétés( 5, {Couleur de remplissage( 32 )}, ID de l'élément( "06", 1 ) ),
Propriétés( 6, {Couleur de remplissage( 32 )}, ID de l'élément( "07", 1 ) )
.........>
Peut-être pouvez-vous utiliser la propriété de colonne Couleurs de valeur sur la colonne Site ?

Ou souhaitez-vous avoir la même couleur pour tous les sites ? Si tel est le cas, vous pouvez créer une nouvelle colonne avec une seule valeur et l'utiliser comme couleur au lieu de la colonne Site
Si vous souhaitez utiliser la couleur pour obtenir des étiquettes significatives, tout en conservant la couleur constante, vous pouvez utiliser le serveur de légende pour attribuer par lots une couleur à toutes les entrées :
A) via l'interface graphique
sélectionnez toutes les entrées et attribuez la couleur :

via JSL (version 1, testée avec JMP17.2) :
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
gb=Graph Builder(
Variables( X( :height ), Y( :weight ), Color( :sex ) ),
Elements( Heatmap( X, Y )),
);
// talk to the legend server and batch assign a color
legend = gb << get legend server();
legenditems= (legend << get legend items)[1];
legenditems << set properties ({Fill Color( 1 )}) //bug in JMP 18
En raison d'un bug dans JMP18, cette approche ne fonctionne pas...
B - version 2) Pour contourner ce problème, vous pouvez communiquer avec chaque entrée individuellement et lui attribuer une couleur :
problème avec les éléments de légende
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
gb=Graph Builder(
Variables( X( :height ), Y( :weight ), Color( :sex ) ),
Elements( Heatmap( X, Y ,Label( "Label by Value" ))),
);
// talk to the legend server and batch assign a color
legend = gb << get legend server();
legenditems= (legend << get legend items)[1];
for(i=1, i<= Nitems(legenditems), i++,
Eval(Eval Expr(item = legend << Get Legend Item(1, Expr(i))));
item << set properties ({Fill Color( 1 )})
);
Si vous souhaitez attribuer des couleurs différentes à différentes entrées, vous pouvez utiliser des couleurs de valeur (comme suggéré par @jthi ) et appliquer un thème de couleur :

ou sélectionnez toutes les entrées de la légende et attribuez un thème via le menu contextuel :
