Ändern Sie die Zeichenreihenfolge von Grafikelementen mithilfe von JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo alle,
Ich weiß, dass Sie die Zeichenreihenfolge von Grafikelementen ändern können, indem Sie mit der rechten Maustaste auf ein Diagramm klicken, dann auf „Anpassen“ klicken und dann die Reihenfolge der Grafikskripte mithilfe der Aufwärts-/Abwärtspfeile verschieben. Gibt es eine Möglichkeit, dies mit JSL zu tun? Es gibt Nachrichten, die Sie an die Framebox senden können, um die Reihenfolge der Rasterlinien und Referenzlinien zu ändern. Ich hatte gehofft, dass es für Markierungen etwas Ähnliches geben würde. Sie können auch die Transparenz von Dingen wie angepassten Linien usw. ändern. Danke!
Betreff: Zeichenreihenfolge von Grafikelementen mithilfe von JSL ändernUnter Verwendung von JMP 14.2 funktionieren die Optionen zum Anpassen des Diagramms mit JSL-Befehlen wie diesem, mit den Werten der Variablen „Fenster“ und „Rahmenbox“ und daher für dieses Beispiel willkürlich:
Window(6)[Frame Box( 1 )] << Dispatch( {}, "Oneway Plot", FrameBox, {Grid Line Order( 3 )})
Ich kann diesen Trick anwenden, um die Gitterlinien über den Markierungen für die Plattformen „Bivariate“, „Variabilitätsdiagramm“ und „Konturdiagramm“ anzuzeigen, aber ich kann ihn für die Oneway-Plattform nicht über einen Wert von 3 hinaus zum Laufen bringen. Der Marker befindet sich standardmäßig an der 5. Position, daher muss die Reihenfolge der Rasterlinien danach erfolgen. Während der obige Befehl mit Grid Line Order( 2 ) oder Grid Line Order( 3 ) gut funktioniert, passiert nichts, wenn ich Grid Line Order( 4 ) oder Grid Line Order( 5 ) verwende. Ich glaube, das ist ein Fehler.
Wenn ich durch Zeigen und Klicken die Rasterlinienreihenfolge auf 5 erzwinge und dann das Skript im Skriptfenster speichere, erhalte ich „Rasterlinienreihenfolge (5), Referenzlinienreihenfolge (1)“, führe das Skript jedoch so aus, wie es ist Das Skriptfenster setzt die Gitterlinien nicht einmal an die 5. Position.
Ich schließe mich dem Kommentar von an @nkelleh : " Es ist bedauerlich, dass die Meldung „Markierungsreihenfolge“ nicht zusammen mit den Meldungen „Referenzlinienreihenfolge“ und „Gitterlinienreihenfolge“ für die Rahmenbox enthalten war.“ Auch hier wäre es hilfreich, wenn JMP Optionen wie „Nachher/Vorher“ oder „Letztes/Erstes“ zulässt, wie es auch beim Anordnen von Spalten oder Zeilen in einer Datentabelle der Fall ist.
Betreff: Zeichenreihenfolge von Grafikelementen mithilfe von JSL ändernEigentlich funktioniert das auch. Ich weiß nicht, warum ich nicht daran gedacht habe, das zu versuchen. Beifall.
Betreff: Zeichenreihenfolge von Grafikelementen mithilfe von JSL ändernHaben Sie versucht, das Markierungssegment einfach wieder an den Frame anzuhängen, nachdem Sie es gelöscht haben?
- markerSeg1 = bivFrame << Find Seg( Marker Seg( 1 ) );
- markerSeg1 << Löschen;
- bivFrame << appendseg(markerSeg1);
Damit sollte es in der Ziehungsreihenfolge an letzter Stelle stehen.Durch das Löschen wird es lediglich aus dem Baum entfernt, daher sollte es sicher sein, es wieder hinzuzufügen.
Betreff: Zeichenreihenfolge von Grafikelementen mithilfe von JSL ändernNa ja, ich musste für alle Fälle fragen!
Vielen Dank für die Problemumgehung. Ich konnte die gesuchte Ausgabe erhalten, indem ich die vorhandenen Markierungen löschte und sie neu zeichnete, wie es der von Ihnen verlinkte Thread vorgeschlagen hatte. Bei der Auswahl von Datenpunkten geht die Interaktivität der Plattform verloren, aber da dies nur der Datenvisualisierung diente, war das für mich in Ordnung.
Danke noch einmal.
Unten ist der Codeabschnitt, den ich wiederverwendet habe, um die Markierungen zu löschen und neu zu zeichnen
//Delete Markers if requiredmarkerSeg1 = bivFrame << Find Seg( Marker Seg(1) );markerSeg1 << Delete;//Script to redraw markers on topbivFrame << Add Graphics Script( For(r=1, r <= NRows(dtMain), r++, y = Column( dtMain, "Voltage" ); x = Column( dtMain, "Temp" ); ms = Combine States( Marker State( Marker Of( Row State( r ) ) ), Color State( Color Of( Row State( r ) ) ) ); Marker(ms, {x, y}); ); );Betreff: Zeichenreihenfolge von Grafikelementen mithilfe von JSL ändernEntschuldigung – jetzt verstehe ich es.
In der Hoffnung, dass mir jemand das Gegenteil beweist, sage ich, dass Sie leider „Pech“ haben. Sowohl im Hinblick auf das programmgesteuerte Drehen der Auf-/Ab-Pfeile als auch auf die Transparenz der angepassten Linien.
Nicht unbedingt empfehlenswert, aber wenn Sie die Markierungen in den Vordergrund bringen möchten, können Sie sie mit einem Grafikskript neu zeichnen, indem Sie eine Variation von Folgendem verwenden: https://community.jmp.com/thread/65641
Betreff: Zeichenreihenfolge von Grafikelementen mithilfe von JSL ändernHallo Ian,
Nochmals vielen Dank, nützliche Tipps. Hier möchte ich die anderen Grafikelemente, in diesem Fall angepasste Splines, beibehalten, aber die Markierungen in den Vordergrund des Plots bringen (die Linien der Spline-Anpassung verdecken die Markierungen in Bereichen, in denen viele Linien/Markierungen nahe beieinander liegen). Ich kann dies manuell mit der im ursprünglichen Beitrag beschriebenen Methode tun. Ich frage mich nur, ob es eine Möglichkeit gibt, dies programmgesteuert zu tun. Es ist bedauerlich, dass die Meldung „Markierungsreihenfolge“ nicht zusammen mit den Meldungen „Referenzlinienreihenfolge“ und „Gitterlinienreihenfolge“ für die Rahmenbox enthalten war.
Es ist einfach, die Transparenz von gezeichneten Objekten mithilfe eines Grafikskripts zu ändern. Außerdem habe ich mich gefragt, ob es eine Möglichkeit gibt, die Transparenz angepasster Linien beispielsweise in der bivariaten Plattform zu ändern.
Danke nochmal für all deine Hilfe.
Betreff: Zeichenreihenfolge von Grafikelementen mithilfe von JSL ändernZu Ihrer Information, Sie können so etwas tun (mit der Möglichkeit, die Reihenfolge des Rasters und der Referenzlinien zu ändern, können Sie möglicherweise das bekommen, was Sie wollen):
Namen standardmäßig hier ( 1 ) ;
Offen ( „$SAMPLE_DATA/Big Class.jmp“ ) ;
biv = Bivariat ( Y ( : Gewicht ) , X ( : Höhe ) , FitLine ) ;
rbiv = biv << Bericht ;
Rahmenbox = rbiv [ Rahmenbox ( 1 )] ;
Warten ( 1 ) ;
Rahmenbox <<
Grafikskript hinzufügen (
1 ,
Beschreibung ( „Oranges Polygon“ ) ,
Transparenz ( 0,5 ) ;
Füllfarbe ( { 1,0 , 0,5 , 0,0 } ) ;
Polygon ( [ 60 , 72 , 57 ] , [ 75 , 120 , 120 ] ) ;
) ;
Warten ( 1 ) ;
Rahmenbox <<
Grafikskript hinzufügen (
2 ,
Beschreibung ( „Blaues Polygon“ ) ,
Transparenz ( 0,5 ) ;
Füllfarbe ( { 0,0 , 0,5 , 1,0 } ) ;
Polygon ( [ 60 , 72 , 57 ] , [ 150 , 120 , 120 ] ) ;
) ;
Warten ( 1 ) ;
Rahmenbox << Grafikskript entfernen ( 1 ) ;
// Nachdem das erste Grafikskript entfernt wurde, befindet sich das zweite jetzt an Position 1 (obwohl es ursprünglich Position 2 zugewiesen war). . .
Warten ( 1 ) ;
Rahmenbox << Grafikskript entfernen ( 1 ) ;
Bitte beachten Sie auch: https://www.jmp.com/support/help/Adding_Scripts_to_Graphs.shtml