Ich habe das Problem per herausgefunden dieser Beitrag.
Durch die Verwendung von Column(listDT,set_groupby) in for char(set_groupby).
Row Legend(
//group by this
Column(listDT,set_groupby),
Color( 1 ),
Color Theme( "JMP default" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}Hallo,
(HINWEIS zum Kontext: Ich arbeite an einer Diagrammvorlage, die das Erstellen von Diagrammen für jedes Etikett (A, B, C, D und E) im Datensatz automatisiert (siehe das beigefügte Skript), um es dann an dasselbe Ausgabefenster anzuhängen zum einfachen Exportieren und Teilen. Hier verwende ich ein einzelnes Diagramm für das Label "A" als Beispiel, um zu beweisen, was mit meinem Skript nicht stimmt. )
Ich habe ein Problem mit meinem JMP-Skript, das die ausgewählte Gruppieren-nach-Variable nicht aus der Benutzerauswahl im modalen Fenster liest. Ich möchte, dass der Benutzer einen "Gruppieren nach"-Spaltennamen aus den Daten auswählt, der eine beliebige Gruppieren-nach-Variable sein kann und eine Legende und ein Farbschema wie im folgenden Beispiel hat.
In der beigefügten JMP-Datentabelle haben meine Spielzeugdaten die generische Spalte "Gruppe". Ein Benutzer sollte jedoch in der Lage sein, eine beliebige Zeichenvariable (z. B. Herstellungsort, Charge, Verfahren, Formulierung) aus der Tabelle auszuwählen und die Gruppieren-nach-Legende und das Farbschema zu haben.
Hier ist mein JMP-Skript:
//Wählen Sie die Daten in der ursprünglichen Datentabelle Names Default To Here( 1 ); dt = Aktuelle Datentabelle (); /* 28.02.2022 Bearbeiten Sie Spaltennamen abrufen zu 1. x-Achsen-Variable abrufen 2. Gruppierungsvariable zum Einfärben der Punkte abrufen - muss eine None-Option sein, wenn keine Gruppe vorhanden ist - logische Anweisung später, wenn set_groupby "none" ist ", dann nein - Fragen Sie den Benutzer auch, welches Farbschema verwendet werden soll. Automatische JMP-Farbe (blau und rot) oder keine (bei manueller Einfärbung beispielsweise nach Batch-ID) siehe Quelle: https://www.jmp.com/support/help/zh-cn/15.2/index.shtml#page /jmp/get-column-names.shtml */ column_names = dt << Get Column Names( Numeric, character, String ); //TO DO: //names_for_groupby_select = //group by sollte nur eine Zeichenvariable sein, also groupby_col_names = dt << Get Column names(character, String); nw1 = New Window("X-Achse festlegen und nach Variable gruppieren", < 9, 5); // generisches Diagramm (kann Regeldiagramm oder Prozessdiagramm sein) Oneway( SendToByGroup( {:Name("Label (y-axis)") == label_val}, Y( :Result ), X( char(set_xlabel) ), / /:Name("x-Achse") ), Connect Means( 1 ), Grand Mean( 0 ), SendToReport( Dispatch( {}, "Result", TextEditBox, {Set Text( label_val || units_formatted )} ), // Schriftgröße: Dispatch( {}, "2", ScaleBox, {Label Row( Set Font Size( font_size )} ), //Graph Stuff: Dispatch( {}, "Oneway Plot", FrameBox, {Frame Size( 1000 , 300 ), DispatchSeg( CustomStreamSeg( 6 ), {Line Color( "Gray" )} ), Row Legend( //group by this //:Name("Group"), //oder einfach Group funktioniert auch char(set_groupby ), // << müssen vom Benutzer angegeben werden. //set_groupby, // ZU TUN: diesen Fehler beheben! Color( 1 ), Color Theme( "JMP default" ), // TO DO: << muss vom Benutzer angegeben werden. Marker( 0 ), Marker-Thema( "" ), Kontinuierliche Skalierung( 0 ), Umgekehrte Skalierung( 0 ), Ausgeschlossene Zeilen( 0 ) )} ) ) ) ); ); container << Append(inhalt) );
In diesem JMP-Skript funktioniert die Spaltenauswahl für die x-Achse (siehe das Beispiel für das modale Fenster und das resultierende Diagramm unten), daher bin ich davon ausgegangen, dass die Variablenreferenz „Gruppieren nach“ ebenfalls funktioniert. Die Ausgabe erzeugt jedoch ein Diagramm, das keine Gruppieren-nach-Variable oder Legende enthält. Was macht mein Code hier falsch?
Modales Fenster:
JMP-Ausgabebeispieldiagramm für Label „A“
DatentabelleGrafikAndereSkripterstellungWindowsSie können auch Eval() verwenden
Row Legend(
//group by this
Eval(set_groupby),
Color( 1 ),
Color Theme( "JMP default" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}