Crear mapa de calor en una tabla de datos y actualizar el degradado de color con un scriptHola,
Tengo muchos datos que me gusta trazar como un mapa de calor de una tabla de datos. He adjuntado una imagen a continuación de una imagen de la tabla de datos de muestra y los pasos que hago para crear el mapa de calor en la tabla de datos. Sigue los siguientes pasos:
- Obtener una tabla de datos después de usar tabular
- Apile todas las columnas (excepto "tipo"). Luego, haga un resumen de todo el conjunto de datos para encontrar el mínimo, la mediana y el máximo.
- Tome los valores mínimo, mediano y máximo del paso 2 y colóquelos en los valores de degradado de color.
El resultado de la tabla de datos después de ejecutar estos pasos se muestra a continuación. Actualmente, hago el paso 3 manualmente, donde cualquier valor que obtengo, resumen de la publicación, lo ingreso en los valores de degradado de color. ¿Hay alguna manera de tomar los valores (mínimo, mediano, máximo) de la tabla de datos de resumen con un script e ingresarlo en el degradado de color?
También he adjuntado el conjunto de datos de muestra.


Tabla de datosScriptingRe: Crear mapa de calor en una tabla de datos y actualizar degradado de color con scriptAquí está el JSL que establecerá el degradado de color.
names default to here(1);
dt=current data table();
dt:"Group:0, test:A"n << set property("color gradient",{"Green Yellow Red", Range(
{-142.439058836207, -42.6065023706896, -97.9221899694684}
)});
Encuentro que la forma más fácil de insertar los valores en las listas requeridas es usar un código similar al siguiente:
Max = -142.439058836207;
Min = -42.6065023706896;
Mid = -97.9221899694684;<BR />
Eval(
Substitute(
Expr(
dt:"Group:0, test:A"n << set property(
"color gradient",
{"Green Yellow Red", Range( {__Max__, __Min__, __Mid__} )}
);
),
Expr( __Max__ ), Max,
Expr( __Min__ ), Min,
Expr( __Mid__ ), Mid
)
);Re: Crear mapa de calor en una tabla de datos y actualizar degradado de color con script¡Gracias por el aporte! Estoy usando tu guión como un buen punto de partida, pero esperaba hacerlo más dinámico.
- Entonces, en el script, configura manualmente los valores máximo, mínimo y medio, si hay alguna forma de que se establezcan mediante la tabla de resumen de salida en el paso 2 de la imagen. Básicamente, este máximo, mínimo y medio están en el alcance de la prueba Grupo: 0: AI le gustaría obtener el alcance máximo, mínimo y medio para toda la tabla.
- Tuve que agregar celda de color por valor (1) en mi secuencia de comandos y también he estado tratando de establecer la escala inversa y he recibido mensajes de error. ¿Alguna idea de cómo hacer esto?
- Además, ¿es seguro asumir que para ejecutar el degradado de color en todas las columnas necesitaría un bucle for fuera del código que envió? ¿O hay otra manera de hacer esto?
names default to here(1);
dt=current data table();
dt:"Group:0, test:A" << set property("color gradient",{"Green Yellow Red", Range(
{-142.439058836207, -42.6065023706896, -97.9221899694684}
)});
Max = -142.439058836207;
Min = -42.6065023706896;
Mid = -97.9221899694684;
Eval(
Substitute(
Expr(
dt:"Group:0, test:A"n << set property(
"color gradient",
{"Green Yellow Red", Range( {__Max__, __Min__, __Mid__} )},
)
:dt << Color Cell by Value( 1 );
),
Expr( __Max__ ), Max,
Expr( __Min__ ), Min,
Expr( __Mid__ ), Mid
)
);Re: Crear mapa de calor en una tabla de datos y actualizar degradado de color con scriptA continuación, se muestra un ejemplo que automatiza el color de las columnas de la tabla de datos de muestra de Big Class.Debería poder desviarse de este script para que funcione con sus datos
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colList = dt << get column names( continuous, string );
For( i = 1, i <= N Items( colList ), i++,
Eval(
Substitute(
Expr(
Summarize(
dt,
myMax = Max( As Column( __col__ ) ),
myMin = Min( As Column( __col__ ) ),
myMid = Mean( As Column( __col__ ) )
);
Column( __col__ ) <<
set property(
"color gradient",
{"Green Yellow Red",
Range( {__Max__, __Min__, __Mid__} ), "Reverse Scale"}
) << Color Cell by Value( 1 );
),
Expr( __col__ ), colList[i],
Expr( __Max__ ), myMax,
Expr( __Min__ ), myMin,
Expr( __Mid__ ), myMid
)
)
);Re: Crear mapa de calor en una tabla de datos y actualizar degradado de color con scriptCuando ejecuto su script como está (usando un conjunto de datos de clase grande), se bloquea y recibo el siguiente mensaje:
Name Unresolved: myMax in access or evaluation of 'myMax' , myMax/*###*/
at line 25 in Script 4.jsl