Comment définir des dégradés de couleurs pour plusieurs colonnes spécifiées, trait par trait ?Merci les experts !
dt=Open("$SAMPLE_DATA/Big Class.jmp");
ca="height1";w=Try(Length(as Column(Current Data Table(),ca)<
<GET name="">
0;if(w<1,New Column(ca));Column(ca)<
<FORMULA></FORMULA>
</GET>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2025-06-08_11-43-38.png" style="width: 958px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-06-08_11-43-38.png" style="width: 958px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-06-08_11-43-38.png" style="width: 958px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-06-08_11-43-38.png" style="width: 958px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-06-08_11-43-38.png" style="width: 958px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-06-08_11-43-38.png" style="width: 958px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-06-08_11-43-38.png" style="width: 958px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-06-08_11-43-38.png" style="width: 958px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-06-08_11-43-38.png" style="width: 958px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-06-08_11-43-38.png" style="width: 958px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-06-08_11-43-38.png" style="width: 958px;"><span class="lia-inline-image-display-wrapper" image-alt="2025-06-08_11-43-38.png" style="width: 958px;"><img src="https://us.v-cdn.net/6038925/uploads/images/76667i20DFC76BBE459E89/2025-06-08_11-43-38.png" role="button" title="2025-06-08_11-43-38.png" alt="2025-06-08_11-43-38.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></P>
<LINGO-LABS id="lingo-labs-878811" slang="en-US" mode="CREATE">
<LINGO-LABEL>Automatisation et scripts</LINGO-LABEL>
<LINGO-LABEL>Windows</LINGO-LABEL>
</LINGO-LABS>
Réponse : Comment définir des dégradés de couleurs pour plusieurs colonnes spécifiées, trait par trait ?IA
ne fonctionne pas
dt = Current Data Table();
colRange = {9, 10, 11};
minVals = {};
maxVals = {};
For(i = 1, i <= N Items(colRange), i++,
col = Column(dt, colRange[i]);
minVals[i] = Col Min(col);
maxVals[i] = Col Max(col);
);
get_cell_color = Function({col, r, c},
s = col << get script;
p = 0;
For(i = 1, i <= N Arg(s), i++,
If(Head Name(Arg(s, i)) == "Color Cells",
p = i;
Break();
);
);
If(p != 0,
L = Arg(Arg(s, p), 1);
color = {};
For(i = 1, i <= N Items(L), i++,
If(N Row(Loc(L[i][2], r)) == 1,
color = L[i][1];
Break();
);
);
Return(color);
,
normalized = 0.5;
If(maxVals[c] != minVals[c],
normalized = (col[r] - minVals[c]) / (maxVals[c] - minVals[c]);
);
red = Round(255 * normalized);
green = 0;
blue = Round(255 * (1 - normalized));
Return(RGB Color(red, green, blue));
);
);
For Each Row(
For(i = 1, i <= N Items(colRange), i++,
colIdx = colRange[i];
col = Column(dt, colIdx);
Eval(Parse(Eval Insert("Column(dt, ^colIdx^) << Color Cells({{get_cell_color(Column(dt, ^colIdx^), Row(), ^i^), {Row()}}})")));
);
);
Re : Comment définir des dégradés de couleurs pour plusieurs colonnes spécifiées trait par trait ?Essayez-vous de colorier les cellules d'une ligne à l'aide d'un dégradé de couleurs ?
Re : Comment définir des dégradés de couleurs pour plusieurs colonnes spécifiées trait par trait ?Je n'ai aucune idée précise de ce qui a été demandé ici, mais voici une tentative de script pour colorier les dégradés par ligne
/*""" Gradient color cells rowwise (using whole data)
Author: jthi
Creation Date: 2025-06-08
Creation JMP Version: JMP Pro 18.2.0
"""*/
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/SAT.jmp");
dt << Delete Columns({"% Taking (2004)", "X", "Y", "Population", "Latitude", "Longitude"});
cont_cols = dt << Get Column Names("Continuous", "String");
m = dt[0, cont_cols];
mn = (m - Min(m)) / (Max(m) - Min(m));
colors = Heat Color(mn, "Cividis")`;
idx = 0;
dt << Begin Data Update;
For Each({contcol}, cont_cols,
For Each Row(dt,
idx++;
Column(dt, contcol) << Color Cells(colors[idx], Row());
);
);
dt << End Data Update;
wait(0);
write("\!NDONE");
Re : Comment définir des dégradés de couleurs pour plusieurs colonnes spécifiées trait par trait ?dt = Current Data Table();
colRange = {9, 10, 11};
cont_cols = {};
For( i = 1, i <= N Items( colRange ), i++,
Insert Into( cont_cols, Column( dt, colRange[i] ) << Get Name );
);
m = dt[0, cont_cols];
mn = (m - Min( m )) / (Max( m ) - Min( m ));
colors = Heat Color( mn, "Green Yellow Red" );
idx = 0;
dt << Begin Data Update;
For Each( {contcol}, cont_cols,
For Each Row( dt,
idx++;
Column( dt, contcol ) << Color Cells( colors[idx], Row() );
);
);
dt << End Data Update;
D'accord.
Mais il semble que de cette façon, les trois colonnes entières forment un tout
Ce n’est pas une seule rangée de trois cellules qui forme un tout coloré.
Merci!
Re : Comment définir des dégradés de couleurs pour plusieurs colonnes spécifiées trait par trait ?L'implémentation ligne par ligne serait trop lente
Re : Comment définir des dégradés de couleurs pour plusieurs colonnes spécifiées trait par trait ?Qu'essayez-vous de faire ?
Re : Comment définir des dégradés de couleurs pour plusieurs colonnes spécifiées trait par trait ?
Le changement de couleur de chaque ligne est uniquement basé sur la comparaison des valeurs dans les trois colonnes de cette ligne.
Merci!
Re : Comment définir des dégradés de couleurs pour plusieurs colonnes spécifiées trait par trait ?Vous n'avez que trois valeurs pour chaque ligne et souhaitez avoir uniquement ces trois couleurs ?
Re : Comment définir des dégradés de couleurs pour plusieurs colonnes spécifiées trait par trait ?Quelque chose comme ça ?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/SAT.jmp");
dt << Delete Columns({"% Taking (2004)", "X", "Y", "Population", "Latitude", "Longitude"});
l = (dt << Get Column Names("Continuous", "String"))[1::3];
c1 = {"Green", "Yellow", "Red"};
c2 = [];
c3 = [];
For Each Row(dt,
r = Floor(Ranking Tie(dt[Row(), l])); // no idea what should be done with ties
c3 = c3 |/ r`;
);
dt << Begin Data Update;
For Each({i, idx}, l,
m = c3[0, idx];
g = Loc(m, 1);
y = Loc(m, 2);
r = Loc(m, 3);
Column(dt, i) << Color Cells({{"Green", g}, {"Yellow", y},{"Red", r}});
);
dt << End Data Update;
ou comme ça
/*""" Gradient color cells rowwise (using whole data)
Author: jthi
Creation Date: 2025-06-08
Creation JMP Version: JMP Pro 18.2.0
"""*/
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/SAT.jmp");
dt << Delete Columns({"% Taking (2004)", "X", "Y", "Population", "Latitude", "Longitude"});
l = dt << Get Column Names("Continuous", "String");
c = [];
For Each Row(dt,
m = dt[Row(), l];
mn = (m - Min(m)) / (Max(m) - Min(m));
c = c |/ Heat Color(mn, "Cividis");
);
dt << Begin Data Update();
For Each({i, idx}, l,
cm = {};
For Each({c, idx}, c[0, idx],
v = Eval List({c, Eval List({idx})});
Insert Into(cm, Eval List({v}));
);
Eval(EvalExpr(
Column(dt, i) << Color Cells(Expr(cm));
));
);
dt << End Data Update();
Re : Comment définir des dégradés de couleurs pour plusieurs colonnes spécifiées trait par trait ?Merci jthi !
d'abord
