Wie ändere ich die Skalierung der X-Achse, nachdem ich Graph Builder in JSL verwendet habe (und Frage zum grafischen Ansatz)Hallo,
Ich schreibe ein Skript, das mit Dateien funktioniert, die eine Vielzahl von Spalten haben, also musste ich ein Beispiel ändern, das ich hier gefunden habe und das den Graph Builder-Aufruf basierend auf der Anzahl der Spalten verkettet.Obwohl es ungeschickt ist, scheint es zu funktionieren, aber mein Problem ist, dass ich dann die X-Achse auf die logarithmische Skalierung ändern, die Grenzen ändern usw.Ich habe ein paar Ansätze aus dem Scripting Index und Beispielen ausprobiert, aber keiner schien zu funktionieren.
Würde mich sehr über einen Zeiger in die richtige Richtung bei den Achseneinstellungen freuen, aber wenn jemand eine Idee hat, wie man den anfänglichen Grafikteil besser macht, wäre das auch großartig, danke!
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);
GrafikSkripterstellungBetreff: Wie ändere ich die Skalierung der X-Achse, nachdem ich Graph Builder in JSL verwendet habe (und Frage zum grafischen Ansatz)Gibt es eine Beschreibung, wie dies für die Einstellungen für Verlaufslegenden durchgeführt werden kann?
Ich habe es versucht
Report( gb)[Legend Box(1)] << Legend Model( ...
aber es hat nicht funktioniert
Betreff: Wie ändere ich die Skalierung der X-Achse, nachdem ich Graph Builder in JSL verwendet habe (und Frage zum grafischen Ansatz)Hey Jim, danke für die schnelle Antwort darauf.Das funktioniert gut.Ich wusste nicht, dass Sie report() verwenden müssen, um auf dieses Diagrammelement zu verweisen. Ich habe nur versucht, TestGraph[AxisBox(2)] << scale(log) zu verwenden.
Danke,
Todd
Betreff: Wie ändere ich die Skalierung der X-Achse, nachdem ich Graph Builder in JSL verwendet habe (und Frage zum grafischen Ansatz)Alle Meldungen, die eine Achse ändern, sind im Scripting-Indexeintrag für AxisBox verfügbar
Was Sie verwenden möchten, ist
report(TestGraph)[AxisBox(2)] << scale(log);
Betreff: Wie ändere ich die Skalierung der X-Achse, nachdem ich Graph Builder in JSL verwendet habe (und Frage zum grafischen Ansatz)Hallo,
Dies ist in der Tat eine ziemlich komplizierte Art, einen Graph Builder-Ausdruck zu erstellen. Vielleicht möchten Sie sich mit dem Ansatz befassen, Ihren gesamten GB-Ausdruck mit "Platzhaltern" (gbe = Expr (Graph Builder (...))) zu definieren; verwenden Sie die Ersatzfunktion, um Ihre Platzhalter durch Spalten, Variablen, Beschriftungen usw. zu ersetzen. , und verwenden Sie dann die Funktion Eval(), um das Diagramm zu generieren (leider habe ich im Moment keine Zeit, um weitere Details bereitzustellen).
Wenn Sie für Ihre spezifische Frage Ihren Graph Builder-Ausdruck einer Variablen zuweisen (z. B. gb = Graph Builder (...);), können Sie die Achse mit dem folgenden Ansatz auf jede gewünschte Weise aktualisieren:
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" )
);Ich hoffe das hilft.
Am besten,
TS
Betreff: Wie ändere ich die Skalierung der X-Achse, nachdem ich Graph Builder in JSL verwendet habe (und Frage zum grafischen Ansatz)?Hallo allerseits,
Ich habe eine ähnliche Frage zur Automatisierung der
Vielen Dank für Ihre Hilfe.
Heilig
Mein Skript wie folgt:

Betreff: Wie ändere ich die Skalierung der X-Achse, nachdem ich Graph Builder in JSL verwendet habe (und Frage zum grafischen Ansatz)?Hallo @jmpfumbler, kannst du den Code mit dem posten? Button statt eines Bildes?
Danke!
Betreff: Wie ändere ich die Skalierung der X-Achse, nachdem ich Graph Builder in JSL verwendet habe (und Frage zum grafischen Ansatz)?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 ) ) || If( w >= 10, "W", "W0" ) || Char( w ) ) ) ), Size( 570, 619 ), Variables( X( :"Jahr Woche[Messdatum]"n ), Overlay( :Bestes Produkt ) ), Elemente( Bar( X, Legend( 2 ) , Balkenstil( „Gestapelt“), Zusammenfassungsstatistik („% des Faktors“), Beschriftung( „Beschriftung nach Wert“) ) ), Lokaler Datenfilter( Filter hinzufügen( Spalten( :„Jahr Woche[Gemessenes Datum]“n ) , Where( :"Jahr Woche[Messdatum]"n == {"2023W48", "2023W49", "2023W50", "2023W51", "2023W52", "2024W01", "2024W02", "2024W03", "2024W04 ", "2024W05", "2024W06", "2024W07", "2024W08"} ), Display( :"Year Week[Date Measured]"n, N Items( 15 ), Find( Set Text( "" ) ) ) ) ), SendToReport( Dispatch( {}, "Where(Jahr Woche[Messdatum] = 2023W48, 2023W49, 2023W50, 2023W51, 2023W52, 2024W01, 2024W02, 2024W03, 2024W04, 2024W05, 2024 W06, 2024W07, 2024W08), TextBox, { Hide( 1 )} ) ) );</REPLACE>