¿Cómo establecer degradados de color para múltiples columnas especificadas trazo por trazo?¡Gracias expertos!
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>Automatización y scripting</LINGO-LABEL>
<LINGO-LABEL>Ventanas</LINGO-LABEL>
</LINGO-LABS>
Pregunta: ¿Cómo establecer degradados de color para múltiples columnas especificadas trazo por trazo?AI
no funciona
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: ¿Cómo establecer degradados de color para múltiples columnas específicas trazo por trazo?¿Estás intentando colorear las celdas de una fila usando un degradado de color?
Re: ¿Cómo establecer degradados de color para múltiples columnas específicas trazo por trazo?No tengo una idea real de lo que se solicitó aquí, pero aquí hay un intento de un script para colorear el degradado fila por fila.
/*""" 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: ¿Cómo establecer degradados de color para múltiples columnas específicas trazo por trazo?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;
De acuerdo.
Pero parece que de esta manera las tres columnas forman un todo.
No es una sola fila de tres celdas las que forman un todo de color.
¡Gracias!
Re: ¿Cómo establecer degradados de color para múltiples columnas específicas trazo por trazo?Implementarlo línea por línea sería demasiado lento
Re: ¿Cómo establecer degradados de color para múltiples columnas específicas trazo por trazo?¿Qué estás intentando hacer?
Re: ¿Cómo establecer degradados de color para múltiples columnas específicas trazo por trazo?
El cambio de color de cada fila se basa únicamente en la comparación de los valores en las tres columnas de esa fila.
¡Gracias!
Re: ¿Cómo establecer degradados de color para múltiples columnas específicas trazo por trazo?¿Tiene solo tres valores para cada fila y desea tener solo esos tres colores?
Re: ¿Cómo establecer degradados de color para múltiples columnas específicas trazo por trazo?¿Algo así?
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;
o así
/*""" 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: ¿Cómo establecer degradados de color para múltiples columnas específicas trazo por trazo?¡Gracias jthi!
primero
