¿Cómo cambio la escala del eje X después de usar Graph Builder en JSL (y la pregunta de enfoque de gráficos)Hola,
Estoy escribiendo una secuencia de comandos que funcionará con archivos que tienen una variedad de columnas, así que tuve que modificar un ejemplo que encontré aquí que concatena la llamada de Graph Builder según la cantidad de columnas.A pesar de ser torpe, parece funcionar, pero mi problema es que luego quiero cambiar el eje X a escala logarítmica, cambiar los límites, etc.Probé algunos enfoques del índice de secuencias de comandos y ejemplos, pero ninguno parecía funcionar.
Apreciaría mucho un puntero en la dirección correcta en la configuración del eje, pero si alguien tiene una idea de cómo hacer mejor la parte inicial del gráfico, también sería genial, ¡gracias!
dt = Current Data Table();
ColNameList = dt << Get Column Names (continuous, string);
//Start with initial graph builder
GraphExpr = "
TestGraph = Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables(";
//Add X Entry
GraphExpr = GraphExpr || "
X( :Name( \!"" || ColNameList[1] || "\!") ),";
//Add the first Y entry
GraphExpr = GraphExpr || "
Y( :Name( \!"" || ColNameList[2] || "\!") ),";
//Add the second Y entry
For( i = 3, i <= N items (ColNameList), i++,
GraphExpr = GraphExpr || "
Y( :Name( \!"" || ColNameList[i] || "\!"), Position (1) ),";
);
//Close out Variables section
GraphExpr = GraphExpr || "
),
Elements(
Line( X, Y( 1 )";
//Build out the lines for all columns
For( i = 2, i <= N items (ColNameList), i++,
GraphExpr = GraphExpr || ", Y( " || char(i) || " )"
);
GraphExpr = GraphExpr || ", Legend( 1 )
)
)
)";
eval(parse(GraphExpr));
TestGraph << Show Legend (0);
Gráficossecuencias de comandosRe: ¿Cómo cambio la escala del eje X después de usar Graph Builder en JSL (y la pregunta de enfoque de gráficos)¿Hay una descripción de cómo se puede hacer esto para la configuración de la Leyenda de degradado?
Lo intenté
Report( gb)[Legend Box(1)] << Legend Model( ...
pero no funcionó
Re: ¿Cómo cambio la escala del eje X después de usar Graph Builder en JSL (y la pregunta de enfoque de gráficos)Hola Jim, gracias por la rápida respuesta al respecto.Eso funciona bien.No me di cuenta de que necesitabas usar report() para hacer referencia a ese elemento del gráfico, solo estaba tratando de usar TestGraph[AxisBox(2)] << scale(log)
Gracias,
Todd
Re: ¿Cómo cambio la escala del eje X después de usar Graph Builder en JSL (y la pregunta de enfoque de gráficos)Todos los mensajes que cambian un eje están disponibles en la entrada de índice de secuencias de comandos para AxisBox
Lo que quieres usar es
report(TestGraph)[AxisBox(2)] << scale(log);
Re: ¿Cómo cambio la escala del eje X después de usar Graph Builder en JSL (y la pregunta de enfoque de gráficos)Hola,
De hecho, esta es una forma bastante complicada de construir una expresión de Graph Builder. Es posible que desee analizar el enfoque de definir su expresión GB completa con "marcadores de posición" (gbe = Expr (Graph Builder (...)); use la función de sustitución para reemplazar sus marcadores de posición con columnas, variables, etiquetas, etc. y luego use la función Eval() para generar el gráfico (lo siento, no tengo tiempo ahora para proporcionar más detalles)
Para su pregunta específica, si asigna su expresión Graph Builder a una variable (p. ej., gb = Graph Builder (...);) puede usar el siguiente enfoque para actualizar el eje de la forma que necesite:
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :age, Size( 23 ) ),
Y( :height, Size( 37 ) ),
Y( :weight, Position( 1 ), Size( 37 ), Side( "Right" ) )
),
Elements( Points( X, Y( 1 ), Legend( 1 ), Jitter( 1 ) ), Points( X, Y( 2 ), Legend( 3 ), Jitter( 1 ) ) )
);
framebox = Report( gb )[framebox( 1 )];
framebox << Y Axis(
Scale ("Log"),
Add Ref Line( 61.25, "Solid", "Medium Dark Green" ),
Show Major Grid( 1 ),
Show Minor Grid( 1 ),
Format( "Fixed Dec", 5, 2 ),
Rotated Labels( "Perpendicular" )
);Espero que esto ayude.
Mejor,
TS
Re: ¿Cómo cambio la escala del eje X después de usar Graph Builder en JSL (y pregunta sobre el enfoque gráfico)?Hola a todos,
Tengo una pregunta similar sobre cómo automatizar el eje X, que es la escala de tiempo y me gustaría que se muestren automáticamente los datos del último período deseado (n = 7), por ejemplo.
Muy apreciado por su ayuda.
Sagrado
Mi guión es el siguiente:

Re: ¿Cómo cambio la escala del eje X después de usar Graph Builder en JSL (y pregunta sobre el enfoque gráfico)?Hola @jmpfumbler, ¿puedes publicar el código usando el ¿Botón en lugar de una imagen?
¡Gracias!
Re: ¿Cómo cambio la escala del eje X después de usar Graph Builder en JSL (y pregunta sobre el enfoque gráfico)?Hi Pmroz,<BR />Script with JSL, <BR />Thank you,<BR />
// → Data Table( "GSB" )
Local( {obj},
obj = Data Table( "GSB" ) <<
Graph Builder(
Size( 604, 659 ),
Variables(
X(
Transform Column(
"Month Year[Date Measured]",
Ordinal,
Format( "m/y", 23 ),
Formula(
Date DMY(
1,
Month( :Date Measured ),
Year( :Date Measured )
)
)
)
),
Overlay( GSB Validation )
),
Elements(
Bar(
X,
Legend( 11 ),
Bar Style( "Stacked" ),
Summary Statistic( "% of Factor" ),
Label( "Label by Value" )
)
),
Local Data Filter(
Add Filter(
columns(
:"Inferred Value (Yes/No)"n,
Transform Column(
"Month Year[Date Measured]",
Ordinal,
Format( "m/y", 23 ),
Formula(
Date DMY(
1,
Month( :Date Measured ),
Year( :Date Measured )
)
)
)
),
Where( :"Inferred Value (Yes/No)"n == "Yes" ),
Where(
Transform Column(
"Month Year[Date Measured]",
Ordinal,
Format( "m/y", 23 ),
Formula(
Date DMY(
1,
Month( :Date Measured ),
Year( :Date Measured )
)
)
) == {3755376000, 3758054400, 3760473600, 3763152000, 3765744000,
3768422400, 3771014400, 3773692800, 3776371200, 3778963200,
3781641600}
),
Display(
Transform Column(
"Month Year[Date Measured]",
Ordinal,
Format( "m/y", 23 ),
Formula(
Date DMY(
1,
Month( :Date Measured ),
Year( :Date Measured )
)
)
),
N Items( 15 )
)
)
),
SendToReport(
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "Monthly GSB Validation (%)" )}
),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "%" )} ),
Dispatch( {}, "Where((Inferred Value (Yes", TextBox, {Hide( 1 )} )
)
);
obj << Save Script to Data Table(
"Monthly GSB Validation (%)", <<REPLACE> = 12, y + 1, w / m >= 52, y - 1, y ) ) || Si( w >= 10, "W", "W0" ) || Char( w ) ) ) ) ), Tamaño( 570, 619 ), Variables( X( :"Año Semana[Fecha medida]"n ), Superposición( :Mejor producto ) ), Elementos( Barra( X, Leyenda( 2 ) , Estilo de barra( "Apilado"), Estadística de resumen( "% del factor"), Etiqueta( "Etiqueta por valor") ), Filtro de datos locales( Agregar filtro( columnas( :"Año Semana[Fecha de medición]"n ) , Donde( :"Año Semana[Fecha medida]"n == {"2023W48", "2023W49", "2023W50", "2023W51", "2023W52", "2024W01", "2024W02", "2024W03", "2024W04 ", "2024W05", "2024W06", "2024W07", "2024W08"}), Mostrar( :"Año Semana[Fecha medida]"n, N elementos( 15 ), Buscar( Establecer texto( "" ) ) ) ) ), SendToReport( Envío( {}, "Donde(Año Semana[Fecha medida] = 2023W48, 2023W49, 2023W50, 2023W51, 2023W52, 2024W01, 2024W02, 2024W03, 2024W04, 2024W05, 2024W0 6, 2024W07, 2024W08)", Cuadro de texto, { Ocultar( 1 )} ) ) );</REPLACE>