Edición de escala de degradado de color usando JSLHola a todos,
Tengo esta tabla de datos por ejemplo

test = Graph Builder(
Variables( X( :X ), Y( :Y ), Color( :Value ) ),
Elements( Points( X, Y, Legend( 23 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
23,
Properties(
0,
{gradient(
{Scale Values( [-2 2] ), Label Format( "Fixed Dec", 15, 3 )}
)},
Item ID( "Value", 1 )
)
)}
)
)
);Ejecuto el script anterior para obtener este gráfico a continuación con el gradiente de color +/- 2 desviaciones estándar. Esto ayuda a no mostrar volantes si el conjunto de datos es grande.
En el gráfico a continuación, lo único que hago es hacer clic derecho en el degradado de color y cambiar el tipo de escala a lineal (porque es más fácil pensar en escalas lineales). Estoy luchando para escribir este paso.

Tenga en cuenta que no quiero el gráfico a continuación, que es solo el predeterminado al hacer el gráfico antes de ajustar el gradiente.

Lo más cercano que obtuve está debajo, pero establece la escala linealmente de -2 a 2, que fue lo que ingresé para los límites de desviación estándar.
test << Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
3,
Properties(
0,
{gradient(
{ Scale Values[ ], Label Format( "Fixed Dec", 15, 4 ),
Scale Type( "Linear" )}
)},
Item ID( "Entry X Offset", 1 )
)
)}
)¡Cualquier pensamiento son muy apreciados! -evan
Re: Edición de escala de degradado de color usando JSLAquí hay un ejemplo en el que estoy determinando dinámicamente el gradiente de una de las columnas.
dt = New Table( "Untitled", Add Rows( 4 ),
New Column( "X", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [1, 2, 3, 4] ) ),
New Column( "Y", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [4, 1, 3, 2] ) ),
New Column( "Value", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [1, 1, 2, 2] ) )
);
dtcol = column(dt, "Y");
one_min = col min(dtcol);
one_max = col max(dtcol);
one_avg = col mean(dtcol);
scale_matrix = matrix({one_min, one_avg, one_max});
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :X ), Y( :Y ), Color( :Value ) ),
Elements( Points( X, Y, Legend( 9 ) ) ),
SendToReport(
Dispatch( {}, "400", ScaleBox,
{Legend Model( 9,
Properties( 0,
{gradient( {Scale Values( scale_matrix )} )},
Item ID( "Value", 1 )
)
)}
)
)
);Re: Edición de escala de degradado de color usando JSLEl objetivo del ejercicio es ver qué produce JSL GB para una escala personalizada.Una vez que tenga eso, puede determinar mediante programación la escala para cada conjunto de datos y sustituirlo en su GB JSL en tiempo de ejecución.
Re: Edición de escala de degradado de color usando JSL¡Gracias por la respuesta!
Sin embargo, no quiero tener que hacer ningún trabajo manual en Graph Builder. La idea de mi script (más grande) es crear automáticamente muchos gráficos con la escala adecuada para cada gráfico y conjunto de datos. Para ver patrones, la escala debe ajustarse individualmente para cada columna/conjunto de datos. Hay demasiados para hacer manualmente.Re: Edición de escala de degradado de color usando JSLTrabaje en el gráfico en GB y ajuste la escala exactamente a lo que desea.Luego haga clic en el triángulo rojo y seleccione script > Guardar en ventana de script.Esto es lo que obtuve después de cambiar un poco la escala:
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :X ), Y( :Y ), Color( :Value ) ),
Elements( Points( X, Y, Legend( 9 ) ) ),
SendToReport(
Dispatch( {}, "400", ScaleBox,
{Legend Model( 9,
Properties( 0,
{gradient( {Scale Values( [2.2 2.6 3.2] )} )},
Item ID( "Value", 1 )
)
)}
)
)
);