Wie ändere ich Legendennamen in JSL (in Graph Builder)?Ich erhalte viele Daten in einer CSV-Datei (viele Spalten, viele Zeilen) und arbeite an einer grundlegenden Vorlage in JSL, um die Generierung von Diagrammen zu standardisieren. (Neuskalieren der Achsen, Umbenennen der Achsen, Standardisieren der Linienfarbe usw.) Im Durchschnitt kann ich eine CSV-Datei pro Tag abrufen, also möchte ich die Daten in eine JMP-Datentabelle einfügen, das Skript ausführen und die Grafikausgabe alles automatisiert.
Meine JMP-Datei enthält standardmäßig die Tag-Namen als Spaltenüberschriften, die als Diagrammlegende überhaupt nicht aussagekräftig sind. Eine Möglichkeit besteht darin, alle Spalten umzubenennen, aber ich würde es vorziehen, die Tag-Namen beizubehalten und daher den Text in den Legendeneinstellungen direkt zu bearbeiten. (Aber mit JSL gemacht, nicht manuell.)
Ich kann leicht auf das Legendenfeld zugreifen, zum Beispiel:
gbR = gb << Report; // gbR << Show Tree Structure;
s = gbR[legendbox(1)];
s << Set Title("new title");Im beigefügten PNG sehen Sie die Idee.
Ich stecke jetzt fest, wie ich auf den Text im Legendenfeld zugreifen kann (mit Ausnahme des Titels), damit ich ihn mit JSL bearbeiten und ändern kann.
Ich sehe, dass das vom Graph Builder generierte Skript von "Legendenmodell" und "Ebenenname" spricht, aber ich habe keinen Erfolg in den zahlreichen Dingen, die ich versucht habe.
Jede Anleitung hierzu wäre sehr dankbar.
Wie gesagt, wie kann man mit JSL auf den Legendentext zugreifen, um ihn von seiner Standardeinstellung zu ändern?
Vielen Dank.
SkriptingBetreff: Wie ändere ich Legendennamen in JSL (in Graph Builder)?Die Details im Skriptindex für eine Legendenbox () zeigen keine Meldung an, die das Ändern der tatsächlichen Beschriftungen in einer Legende ermöglicht. Da die Werte in der Legende jedoch direkt von den Werten in der Datentabelle stammen, können Sie einfach entweder die Werte in der Datentabelle ändern / neu codieren oder die Spalteneigenschaft "Wertelabels" festlegen.Betreff: Wie ändere ich Legendennamen in JSL (in Graph Builder)?Vielen Dank für die Bestätigung, dass ich etwas Offensichtliches nicht verpasst habe.
Leider sehe ich nicht (oder kann nicht sehen), wie „Value Labels“ das tun können, was ich erreichen möchte. Mein Ziel ist es bis zu einem gewissen Grad, den Spaltennamen effektiv zu ändern und nicht die Datenwerte zu manipulieren, die sich in den Zeilen unter dem Spaltentitel befinden.
Wenn ich eine einfache Tabelle mit einigen Werten im Text in der Legende erstelle, ändert sich, wenn ich "Set Name" für eine bestimmte Spalte verwende, zum Beispiel "Column (dt, 1) << Set Name (" New name ");" Diese eine Syntaxzeile führt dazu, dass der Text für die Daten in Spalte 1 aktualisiert wird und zu „Neuer Name“ wird.
Die Grafik meiner tatsächlichen Daten enthält Legenden-Texte vom Typ „Mittelwert (… Tag-Name…)“. Wenn Sie << Set Name mit meinen tatsächlichen Daten verwenden, habe ich immer noch einen problematischen Legenden-Text, da dieser „Mean (… Spaltenname…)“ enthält.
Jede Idee, wie der Legendentext für eine bestimmte Spalte bearbeitet werden kann, wäre gut zu wissen. Vielleicht mache ich einfach eine Legende von Grund auf neu, damit alle Eigenschaften in einer solchen "selbst erstellten" Legende zugänglich und manipulierbar sind. Ich möchte, dass es sich um ein Skript handelt und nicht jedes Mal, wenn ich ein neues Diagramm erstelle (wahrscheinlich täglich), manuelle Aufmerksamkeit erfordert.
Betreff: Wie ändere ich Legendennamen in JSL (in Graph Builder)?Wäre es möglich, so etwas in Ihren Graph Builder-Skripten zu tun:
Graph Builder(
Variables( X( :age ), Y( :height ), Y( :weight, Position( 1 ) ) ),
Elements( Line( X, Y( 1 ), Y( 2 ), Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
4,
Level Name( 0, "abcd", Item ID( "Mean(height)", 1 ) ),
Level Name( 1, "efgh", Item ID( "Mean(weight)", 1 ) )
)}
),
Dispatch( {}, "400", LegendBox, {Set Title( "My Title" )} )
)
);Betreff: Wie ändere ich Legendennamen in JSL (in Graph Builder)?Vielen Dank. Ja, sicherlich möglich. Ich denke, ich würde eine Variable benötigen, um den gewünschten Namen für den Legendentext zu erfassen, da ich verschiedene Grafiken im Sinn habe.
Beispiel: Graph Builder-Syntax:
_Legend1 = "abcd";
_Legend2 = "efgh";
Wenn ja, müsste ich das Folgende verwenden, um die Verwendung einer Variablen zu verwalten?
Eval(
Substitute(
Expr(
Ist diese Option wahrscheinlich der einzige Weg, um eine "direktere" Manipulation des Legendentextes zu erreichen?
Betreff: Wie ändere ich Legendennamen in JSL (in Graph Builder)?Dies ist eine weitere Möglichkeit:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Variables( X( :age ), Y( :height ), Y( :weight, Position( 1 ) ) ),
Elements( Line( X, Y( 1 ), Y( 2 ), Legend( 4 ) ) )
);
lgnd = gb << Get Legend Display;
item1 = lgnd << Get Item( 4, 1 );
item1 << Set Label("Line 1");
item2 = lgnd << Get Item( 4, 2 );
item2 << Set Label("Line 2");
Die erste Zahl in Get Item ist der Wert aus dem Parameter Legend in Graph Builder. Die zweite Zahl wird der Index für diese Legende sein. Es kann manchmal schwierig sein, diese Zahl richtig zu machen, weil wir nicht immer alle Legenden zeigen. Wenn Sie die vollständige Liste der Legenden anzeigen möchten, gehen Sie zu den Legendeneinstellungen.
Betreff: Wie ändere ich Legendennamen in JSL (in Graph Builder)?Lieber Paul,
Im angehängten PNG sehen Sie die Graph Builder-Ausgabe, mit der ich die Syntax mit und ohne ausführe
lgnd = gb << Get Legend Display;
item1 = lgnd << Get Item( 4, 1 );
item1 << Set Label("Line 1");
item2 = lgnd << Get Item( 4, 2 );
item2 << Set Label("Line 2");Ich sehe im Text für die Legende keinen Unterschied. Ich folge der Logik Ihrer Syntax, sehe aber keine Auswirkungen davon.
Im zweiten PNG sehen Sie, was ich dachte, dass ich nach der Ausführung Ihrer vollständigen Syntax sehen würde.
Wenn Sie sich das noch ansehen und mir einen Weg zeigen können, wäre ich Ihnen sehr dankbar. Danke, Scott.
Betreff: Wie ändere ich Legendennamen in JSL (in Graph Builder)?Es tut mir Leid. Dies ist eine neue Funktion in JMP 16. Ich wusste nicht, dass es gerade hinzugefügt wurde und in JMP 15 nicht verfügbar war. Sie müssen die erste Methode ausprobieren, bis JMP 16 verfügbar ist. Wieder entschuldige ich mich für die Fehlinformationen.