Come posso modificare la scala dell'asse X dopo aver utilizzato Graph Builder in JSL (e 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 di Graph Builder in base al numero di colonne.Nonostante sia goffo, sembra funzionare, ma il mio problema è che poi voglio cambiare l'asse X per registrare la scala, cambiare 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 eseguire meglio la parte iniziale del grafico, 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 modificare la scala dell'asse X dopo aver utilizzato Graph Builder in JSL (e domanda sull'approccio grafico)C'è una descrizione di come questo può essere fatto per le impostazioni di Gradient Legend?
ho provato
Report( gb)[Legend Box(1)] << Legend Model( ...
ma non ha funzionato
Ri: Come posso modificare la scala dell'asse X dopo aver utilizzato Graph Builder in JSL (e domanda sull'approccio grafico)Ehi Jim, grazie per la rapida risposta in merito.Funziona bene.Non mi ero reso conto che dovevi usare report() per fare riferimento a quell'elemento del grafico, stavo solo cercando di usare TestGraph[AxisBox(2)] << scale(log)
Grazie,
Todd
Ri: Come posso modificare la scala dell'asse X dopo aver utilizzato Graph Builder in JSL (e 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);
Ri: Come posso modificare la scala dell'asse X dopo aver utilizzato Graph Builder in JSL (e domanda sull'approccio grafico)CIAO,
Questo è davvero un modo piuttosto contorto per costruire un'espressione di Graph Builder. Potresti voler esaminare l'approccio per definire l'intera espressione GB con "segnaposto" (gbe = Expr (Graph Builder(...)); utilizzare la funzione di sostituzione per sostituire i segnaposto con colonna, variabili, etichette, ecc. , quindi utilizzare la funzione Eval() per generare il grafico (scusate, non ho il tempo di fornire maggiori dettagli in questo momento)
Per la tua domanda specifica, se assegni l'espressione di Graph Builder a una variabile (ad esempio, gb = Graph Builder (...);) puoi quindi utilizzare l'approccio seguente per aggiornare l'asse in qualsiasi modo ti serva:
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 aiuti.
Migliore,
ST
Ri: Come posso modificare la scala dell'asse X dopo aver utilizzato il Generatore di grafici in JSL (e domanda sull'approccio grafico)Ciao a tutti,
Ho una domanda simile, su come automatizzare l'asse X, che è la scala temporale e vorrei che venissero visualizzati automaticamente i dati dell'ultimo periodo desiderato (n = 7), ad esempio.
Molto apprezzato per i tuoi aiuti.
Sacro
Il mio script come di seguito:

Ri: Come posso modificare la scala dell'asse X dopo aver utilizzato il Generatore di grafici in JSL (e domanda sull'approccio grafico)Ciao @jmpfumbler puoi pubblicare il codice utilizzando il file pulsante anziché un'immagine?
Grazie!
Ri: Come posso modificare la scala dell'asse X dopo aver utilizzato il Generatore di grafici in JSL (e domanda sull'approccio grafico)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 ) ) || Se( w >= 10, "W", "W0" ) || Carattere( w ) ) ) ) ), Dimensione( 570, 619 ), Variabili( X( :"Anno Settimana[Data misurata]"n ), Sovrapposizione( :Miglior prodotto ) ), Elementi( Barra( X, Legenda( 2 ) , Stile barra( "Impilato"), Statistica riepilogativa( "% di fattore" ), Etichetta( "Etichetta per valore") ) ), Filtro dati locale( Aggiungi filtro( colonne( :"Anno Settimana[Data misurata]"n ) , Where( :"Anno Settimana[Data misurata]"n == {"2023W48", "2023W49", "2023W50", "2023W51", "2023W52", "2024W01", "2024W02", "2024W03", "2024W04 ", "2024W05", "2024W06", "2024W07", "2024W08"} ), Visualizza( :"Anno Settimana[Data misurata]"n, N elementi( 15 ), Trova( Imposta testo( "" ) ) ) ) ), SendToReport( Dispatch( {}, "Where(Anno Settimana[Data misurata] = 2023W48, 2023W49, 2023W50, 2023W51, 2023W52, 2024W01, 2024W02, 2024W03, 2024W04, 2024W05, 2024W 06, 2024W07, 2024W08)", Casella di testo, { Nascondi( 1 )} ) ) );</REPLACE>