Wie ändere ich den Maßstab der X-Achse nach Verwendung von Graph Builder in JSL (und Frage zum grafischen Ansatz)?Hallo,
Ich schreibe ein Skript, das mit Dateien mit verschiedenen Spalten funktioniert. Daher 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 ändern möchte, um die Skalierung zu protokollieren, die Grenzwerte zu ändern usw.Ich habe einige Ansätze aus dem Scripting Index und Beispiele ausprobiert, aber keiner schien zu funktionieren.
Würde mich sehr über einen Zeiger in die richtige Richtung auf die Achseneinstellungen freuen, aber wenn jemand eine Idee hat, wie man den anfänglichen grafischen Teil 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);
GrafikSkriptingBetreff: Wie ändere ich den Maßstab der X-Achse nach Verwendung von Graph Builder in JSL (und Frage zum grafischen Ansatz)?Hallo,
Dies ist in der Tat eine ziemlich komplizierte Methode, um einen Graph Builder-Ausdruck zu erstellen. Möglicherweise möchten Sie den Ansatz untersuchen, Ihren gesamten GB-Ausdruck mit "Platzhaltern" zu definieren (gbe = Ausdruck (Graph Builder (...)). Verwenden Sie die Ersatzfunktion, um Ihre Platzhalter durch Spalten, Variablen, Beschriftungen usw. zu ersetzen. und verwenden Sie dann die Eval () - Funktion, um das Diagramm zu generieren (leider habe ich momentan keine Zeit, um weitere Details bereitzustellen).
Wenn Sie für Ihre spezielle Frage Ihren Graph Builder-Ausdruck einer Variablen zuweisen (z. B. gb = Graph Builder (...);), können Sie den folgenden Ansatz verwenden, um die Achse nach Bedarf zu 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.
Beste,
TS
Betreff: Wie ändere ich den Maßstab der X-Achse nach Verwendung von Graph Builder in JSL (und Frage zum grafischen Ansatz)?Alle Nachrichten, die eine Achse ändern, sind im Skriptindexeintrag für AxisBox verfügbar
Was Sie verwenden möchten, ist
report(TestGraph)[AxisBox(2)] << scale(log);