Come posso modificare la scala dell'asse X dopo aver utilizzato il generatore di grafici in JSL (e la domanda sull'approccio grafico)Ciao,
Sto scrivendo uno script che funzionerà con file che hanno una varietà di colonne, quindi ho dovuto modificare un esempio che ho trovato qui che concatena la chiamata del generatore di grafici in base al numero di colonne.Nonostante sia goffo, sembra funzionare, ma il mio problema è che voglio cambiare l'asse X per registrare la scala, modificare i limiti, ecc.Ho provato alcuni approcci dall'indice di scripting e dagli esempi, ma nessuno sembrava funzionare.
Apprezzerei molto un puntatore nella giusta direzione sulle impostazioni dell'asse, ma se qualcuno ha un'idea di come migliorare la parte iniziale della rappresentazione grafica, sarebbe fantastico, grazie!
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);
GraficaScriptingRi: Come posso cambiare la scala dell'asse X dopo aver utilizzato il generatore di grafici in JSL (e la domanda sull'approccio grafico)Ciao,
Questo è davvero un modo piuttosto complicato per costruire un'espressione del generatore di grafici. Potresti voler esaminare l'approccio per definire l'intera espressione GB con "segnaposto" (gbe = Expr (Graph Builder (...)); usa la funzione sostitutiva per sostituire i tuoi segnaposto con colonne, variabili, etichette, ecc. e quindi utilizzare la funzione Eval () per generare il grafico (scusate non ho il tempo in questo momento per fornire maggiori dettagli)
Per la tua domanda specifica, se assegni l'espressione del Generatore di grafici a una variabile (ad esempio, gb = Generatore di grafici (...);) puoi quindi utilizzare l'approccio seguente per aggiornare l'asse in qualsiasi modo tu abbia bisogno:
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" )
);Spero che possa aiutare.
Migliore,
TS
Ri: Come posso cambiare la scala dell'asse X dopo aver utilizzato il generatore di grafici in JSL (e la domanda sull'approccio grafico)Tutti i messaggi che modificano un asse sono disponibili nella voce dell'indice di scripting per AxisBox
Quello che vuoi usare è
report(TestGraph)[AxisBox(2)] << scale(log);