So referenzieren Sie mithilfe von JSL dynamisch die Y-Achse eines Maßstabsfelds in Graph Builder<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Oder irgendwo anders.
Ich schreibe eine Funktion, die einige spezielle Diagramme für die Arbeit generiert. Ich mache noch ein paar zusätzliche Zeichnungen auf der Leinwand und muss das Diagramm auf der Y-Achse neu anpassen, damit alles hineinpasst. Ich kann dies erreichen, indem ich das Maximum und das Minimum jedes Punktes erhalte, den ich zeichne, und diese (+/- 5 %) als meine oberen und unteren Grenzen festlege. Damit die Änderungen jedoch wirksam werden, muss ich die Achsenbezeichnung aufrufen. Ich habe es mit Indexnummern versucht. Ich habe versucht, den Namen als Variable zu speichern und die Variable aufzurufen. Keiner meiner Versuche scheint zu funktionieren und die Dokumentation zu diesem Thema ist nicht umfassend.
Beispiel:
Im Diagrammersteller und zum Senden an den Bericht habe ich Folgendes:
| | Versenden({}, |
| | | „Der Achsenname“, |
| | | ScaleBox, |
| | | {Format( "Fixed Dec", 15, 0 ), Min( llim ), Max( ulim ), |
| | | Inc( 1 ), Minor Ticks( 1 )} |
| | ), |
Damit dies in einer Funktion funktioniert, muss ich derzeit den Namen hart codieren. Ich möchte, dass es unabhängig vom Diagramm, das ich zeichne, dynamisch aktualisiert wird.
Etwas mit der Wirkung von
| | Versenden({}, | |
| | | Y-Achse, |
| | | ScaleBox, |
| | | {Format( "Fixed Dec", 15, 0 ), Min( llim ), Max( ulim ), |
| | | Inc( 1 ), Minor Ticks( 1 )} |
| | ), | |
Ist das, was ich suche.
Betreff: So referenzieren Sie dynamisch die Y-Achse eines Skalenfelds in Graph Builder mithilfe von JSLAls Fortsetzung von Jims Beispiel können Sie XPath() verwenden, um eine Liste aller AxisBoxes im Bericht zu erhalten.Anschließend können Sie die Liste durchlaufen und gegebenenfalls die gewünschten Änderungen vornehmen.Im Folgenden wird XPath() demonstriert und dann einfach jede Achse in einer For-Schleife ausgewählt.
/* Erhalten Sie eine Liste aller AxisBoxes im Bericht */
gbAchse = Bericht ( GB ) << XPath ( "//AxisBox" ) ;
/* Jede Achse durchlaufen, um zu sehen, auf welche Achse sie sich bezieht */
Für ( ich = 1 , ich <= N Artikel ( gbAchse ) , ich ++,
gbAchse [ ich ] << Wählen ;
Warten ( 1 ) ;
) ;
Ich hoffe das hilft!
Wendy
Betreff: So referenzieren Sie dynamisch die Y-Achse eines Skalenfelds in Graph Builder mithilfe von JSLDas hat mein Problem perfekt gelöst. Danke Jim. An meiner Funktion wird noch gearbeitet: Ich soll sie generisch genug machen, um sie zu teilen, aber sobald ich es herausgefunden habe, werde ich hier in der JMP-Community posten, sobald ich sie generisch genug gemacht habe.
Für alle, die sich fragen: Ich glaube, mein Problem besteht darin, dass ich versucht habe, im Bericht auf den Bericht zu verweisen, bevor er vollständig erstellt wurde (obwohl ich mich da vielleicht irre).
Betreff: So referenzieren Sie dynamisch die Y-Achse eines Skalenfelds in Graph Builder mithilfe von JSLSie stellen eine interessante Frage zur Achsenidentifizierung im Graph Builder.Ich habe mir die Achsenstruktur angesehen, die Graph Builder verwendet, und sie scheint eine Organisation zu haben, die man verwenden kann.

Das obige Graph Builder-Diagramm hat eine Y-Achse und mehrere X-Achsen.Die Struktur der Diagramme, die ich ausprobiert habe, verwendete immer Achse 1 als erste X-Achse und Achse 2 und die erste Y-Achse.Bei Verwendung des folgenden Codes blieb die Achsennummer also auch dann gleich, wenn der Diagrammtyp geändert wurde.
Namen werden standardmäßig hier angezeigt ( 1 ) ;
dt = offen ( „$SAMPLE_DATA/semiconductor Capability.jmp“ ) ;
GB = Graph Builder(
Größe( 593 , 526 ) ,
Systemsteuerung anzeigen( 0 ) ,
Variablen( X( : PNP1 ) , Y( : NPN1 ) , Gruppe X( : WEBSITE ) ) ,
Elemente( Punkte( X , Y , Legende( 5 ) ) , Glatter( X , Y , Legende( 6 ) ) )
) ;
Bericht (gb)[Achsenfeld( 1 )] << Mindest ( 150 ) ;
Die Achsenbox(2)-Referenz würde die Y-Achse ändern.
Es gibt auch die Achsenfelder 3, 4, 5 und 6, bei denen es sich um die anderen 5 angezeigten X-Achsen handelt.

In diesem Beispiel wurde der Y-Achse eine zweite Variable hinzugefügt. Allerdings ist Axis Box(1) immer noch die erste X-Achse, Axis Box(2) ist die Y-Achse für die obere Spalte „PNP4“, während Axis Box( 3) ist die Y-Achse für die Spalte „NPN1“.
Namen werden standardmäßig hier angezeigt ( 1 ) ;
dt = offen ( „$SAMPLE_DATA/semiconductor Capability.jmp“ ) ;
GB = Graph Builder(
Größe( 593 , 526 ) ,
Systemsteuerung anzeigen( 0 ) ,
Variablen( X( : PNP1 ) , Y( : PNP4 ) , Y( : NPN1 ) , Gruppe X( : WEBSITE ) )) ;
Wenn Sie mit der Maus auf das graue Erweiterungsdreieck klicken und auswählen
Bearbeiten==>Baumstruktur anzeigen
Sie sollten in der Lage sein, die Achsenboxstruktur für die von Ihnen verwendeten Diagramme zu bestimmen und programmgesteuert zu bestimmen, wie auf die richtige Achsenbox verwiesen wird
Betreff: So verweisen Sie dynamisch auf die Y-Achse eines Skalenfelds im Graph Builder mithilfe von JSLNachdem man Zugriff auf die einzelnen Achsenobjekte hat, besteht die nächste Aufgabe darin herauszufinden, welche Achse zu welcher „Achse“ gehört.
Ist die erste Achse die x- oder die y-Achse?
Und wie sieht es mit anderen Diagrammtypen aus? Gilt die gleiche Logik für Diagrammerstellungsfelder und Diagrammfelder ?
Bitte schauen Sie sich diesen Wunsch an:
Erleichtern Sie das Abrufen von Ergebnissen aus Berichten über JSL
Neben dem Abrufen von Ergebnissen aus dem Bericht könnte man auch die Art und Weise der Berichtsanpassung vereinfachen.
Der Versenden -Befehl ist gut ausgestattet – man kann direkt über Informationen wie „X Titel“ steuern, wohin die Nachricht gesendet wird:
SendToReport( Dispatch( {}, "X title", TextEditBox, {Set Text( "xxx" )} ) )
Für XPath scheint dies noch nicht möglich zu sein ...