Comment utiliser JSL pour colorer les cellules locales par valeur ?Par exemple, dans la colonne "poids" de "Big class.jMP", prenez les données des lignes 1 à 10 et créez le dégradé de couleur en fonction de la hauteur des données, comme dans le Image .Donc, vous pouvez démarrer et arrêter n'importe quelle couleur souhaitée.

Personnalisation de masseRe : Comment utiliser JSL pour colorer les cellules locales par valeur ?Utilisez cette méthode stupide pour sélectionner le numéro de couleur que je veux.

Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Merci Jim!
Il est difficile d'obtenir un numéro de couleur comme celui-ci directement à partir de la couleur de la cellule :
"-2768895, -5530606, -6582759, -8094941, -9147350, -10462158, -11514567, -12237762,
-13344414, -14575206"Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Vous trouverez ci-joint un tableau de données avec la colonne de formule ajoutée, récupérant les couleurs des cellules de la colonne Hauteur.Les couleurs ont été définies en cliquant avec le bouton droit sur chaque cellule et en sélectionnant Cell Color.La formule ne pourra pas récupérer les couleurs définies avec Couleur ou Marquer par colonne, Couleurs de valeur ou Couleur de dégradé

Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Merci Jim!
Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Excellente fonction, Jim ! Merci d'avoir partagé.
C'est un bon endroit pour promouvoir votre idée de liste de souhaits JMP : << obtenir la couleur des cellules
que cela soit intégré à JMP, afin que toute personne tombant sur cette discussion puisse la voter.
Merci,
~Jean
Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Voici une formule qui fonctionne si les cellules ont été colorées à l'aide de Color Cells().Mais la coloration des cellules qui a été définie par Value Colors, ou Color et Mark by Column()..Ce n'est donc pas une formule très adéquate
// Define formula to retrieve cell colors
If( Row() == 1,
get_cell_color = Function( {col, r},
s = col << get script;
//Locate argument "Color Cells" in column script
For( i = 1, i <= N Arg( s ), i++,
If( Head Name( Arg( s, i ) ) == "Color Cells",
p = i;
Break();
);
);
//Identify the sublist that contains the color of row r
if( p==i,
L = Arg( Arg( s, p ), 1 );
For( i = 1, N Items( L ), i++,
If( N Row( Loc( L[i][2], r ) ) == 1,
color = L[i][1];
Break();
)
);
color,
color=.
)
)
);
cellcolor = get_cell_color( Column( :Height ), Row() );Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Merci Jim!
J'ai le code pour essayer ce post, mais je n'y arriverai toujours pas.

Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Avez-vous lu l'entrée que j'ai publiée dans ma réponse précédente sur la façon de récupérer les couleurs des cellules ?Il a une fonction qui peut vous indiquer comment accéder aux couleurs des cellules.Si les couleurs ont été définies à l'aide de "Couleur ou Marquer par colonne", le seul moyen que je connaisse pour obtenir les couleurs est de créer une colonne d'état de ligne, de copier les états de ligne actuels dans la nouvelle colonne, puis d'utiliser la couleur de ( Row State( row#)) pour récupérer la valeur de couleur.
Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Merci Jim!
Je n'ai toujours pas appris à écrire des "Fonctions".
Je veux obtenir un numéro de couleur comme celui-ci :

Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Vous pouvez facilement créer un modèle similaire en JSL.Mais en JSL, vous créez des fonctions.

Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Merci Jim!
Vous m'avez beaucoup aidé et avez fait des progrès rapides.
J'utilisais VBA et j'ai pu enregistrer la plupart du code pour chaque étape.
En utilisant désormais JSL, je souhaite également obtenir un fonctionnement entièrement automatique.Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Il y a quelques années, j'ai posé la même question,
C'est ici:
En gros, vous devez l'extraire du script extrait pour la colonne qui vous intéresse
Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Mais le faire manuellement pour afficher cela ?
De plus, pourrait-on utiliser JSL pour obtenir automatiquement le numéro de couleur de chaque cellule de ligne dans la colonne « hauteur » ?

Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Merci pmroz!
Je l'ai fait.
Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Quelle(s) version(s) du système d'exploitation et de JMP utilisez-vous ?J'utilise JMP 14 sur Windows 10, 64 bits.
Essayez ces étapes :
- Grande classe ouverte
- Faites un clic droit sur la hauteur > Propriétés de la colonne > Dégradé de couleurs

- Cochez "Colorer la cellule par valeur", puis OK

- Vous devriez vous retrouver avec ceci :

Si cela ne fonctionne toujours pas, vous devrez contacter le service d'assistance JMP.
Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Merci pmroz!
Étrange, je ne vois toujours pas 1 à 10 lignes de couleur ici. Les lignes 11 à 40 sont blanches.

Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Voici comment afficher uniquement le dégradé de couleurs pour les lignes 1 à 10. A noter que les min, max et moyenne sont calculés sur toute la colonne.Vous pouvez ajuster cela.
dt = open("$sample_data\Big Class.jmp");
bmin = col min(dt:height);
bmax = col max(dt:height);
bavg = col mean(dt:height);
dt:height << set property("Color Gradient", {"Light Spectral", Range( {bmin, bmax, bavg} )});
dt:height << Color Cell by Value(1);
reset_rows = 11::40;
dt:height << color cells ("White", reset_rows);

Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Vous devriez voir ceci :

Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Merci pmroz!
Votre code est-il complet ? Je n'ai vu aucun résultat lorsque je l'ai exécuté et je ne savais pas comment perfectionner le code. Merci pour votre aide !Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Vous pouvez également essayer le dégradé de couleurs.
dt = open("$sample_data\Big Class.jmp");
bmin = col min(dt:height);
bmax = col max(dt:height);
bavg = col mean(dt:height);
dt:height << set property("Color Gradient", {"Light Spectral", Range( {bmin, bmax, bavg} )});
dt:height << Color Cell by Value(1);
Cela colorera toute la colonne.Vous pouvez utiliser des cellules de couleur pour les lignes 11 jusqu'à la fin pour supprimer la couleur.
Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Regardez dans le Guide de script....... pas seulement dans l'Index de scriptRe : Comment utiliser JSL pour colorer les cellules locales par valeur ?Merci Jim!
J'ai cherché dans l'index et je n'ai vu que ceci.
Où puis-je voir un code couleur plus complet ?

Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?
Voici un script qui colorera les 10 premières lignes du poids de la colonne dans le tableau de données.
names default to here(1);
dt=Open("$SAMPLE_DATA/big class.jmp");
// Set the gradient list of colors
colorList = {-2768895, -5530606, -6582759, -8094941, -9147350, -10462158, -11514567, -12237762,
-13344414, -14575206};
// Color first 10 rows
// find the range
weightMin= col min(if(Row()<=10,:weight,.));
weightMax= col max(if(Row()<=10,:weight,.));
weightInc= (weightMax-weightmin)/10;
// Loop across and set the colors
For(i=1,i<=10,i++,
Bin=floor((:weight[i]-weightMin)/weightInc)+1;
if(Bin>10,Bin=10);
:weight << color cells( colorList[bin],i)
);
Pour comprendre tous les concepts derrière les couleurs dans JMP, vous devez lire la documentation dans le Guide de script sur la spécification des couleurs.
Re : Comment utiliser JSL pour colorer les cellules locales par valeur ?Les « échelles de couleurs » n'ont pas été trouvées dans l'index du script.