JSL ersetzt ein Rahmenfeld basierend auf einem Kontrollkästchendas ist mein Code
dt = Current Data Table();
listX = {"X"};
listY = {"Y1"};
bivExpr = Expr(
biv = Bivariate( Y( Eval List( listY ) ), X( Eval List( listx ) ) )
);
yListSelect = {"Y1", "Y2","Y3","Y4"};
BC_Indicator = Panel Box( "Choose",
indicatorSelected = Radio Box(
yListSelect,
listY = {};
Insert Into( listY, indicatorSelected << Get Selected );
//selecting a checkbox creates the new graph based on the new Y
bivExpr;
)
);
nw = New Window( "test",
H List Box(
obj = dt << Bivariate(
Y( Eval List( listY ) ),
X( Eval List( listX ) ),
Fit Spline( 0.1, standardized ),
SendToReport(
Dispatch(
{},
"Bivar Plot",
FrameBox,
{Frame Size( 493, 354 ), Marker Size( 2 ), Marker Drawing Mode( "Normal" ), Transparency( transparencyLegend ),
Row Legend(
dt:(fitVar),
Color( 1 ),
Color Theme( "JMP Default" ),
Marker( 0 ),
Marker Theme( "Standard" ),
Continuous Scale( Cont ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
),
BC_Indicator
)
);Meine Datentabelle
| X | Y1 | Y2 | Y3 | Y4 |
| 160.5893 | 194 | 16.79012 | 0,498753 | 7.26817 |
| 160.2228 | 234 | 20.4878 | 0,738916 | 4.466501 |
| 159.5072 | 240 | 15.53398 | 0,488998 | 5.159705 |
| 160.06 | 268 | 11.27098 | 1.213592 | 4.600484 |
| 160.9668 | 230 | 17.35941 | 0,2457 | 5.867971 |
| 159.3969 | 222 | 19.08213 | 0,980392 | 8.845209 |
| 161.0078 | 223 | 21.19701 | 0,75 | 6.766917 |
| 159.6957 | 201 | 21.44638 | 0,251889 | 9.343434 |
| 159.539 | 237 | 18.90547 | 0,498753 | 9 |
| 160.9438 | 210 | 16.38142 | 0,492611 | 9.605911 |
| 160.2693 | 229 | 19.11765 | 0,247525 | 8.188586 |
| 160.6793 | 220 | 17.07317 | 1.231527 | 6.157635 |
| 161.8911 | 187 | 21.62162 | 0,49505 | 9.158416 |
| 162.628 | 201 | 20.82324 | 0,977995 | 10.51345 |
| 162.8909 | 192 | 20.4878 | 0,4914 | 6.896552 |
| 163.0162 | 212 | 18.79518 | 0,243309 | 7.073171 |
| 160.8283 | 206 | 17.03163 | 0,490196 | 8.557457 |
| 160.3191 | 208 | 22.87105 | 0,490196 | 7.823961 |
| 160.3265 | 222 | 19.95134 | 1.466993 | 9.046455 |
| 160.2706 | 227 | 18.42752 | 0,740741 | 6.947891 |
| 162.8886 | 186 | 18.85856 | 0,250627 | 7.537688 |
| 162.8631 | 189 | 23.61446 | 0,728155 | 7.055961 |
| 161.1953 | 241 | 16.34146 | 0,492611 | 8.108108 |
| 161.2756 | 239 | 12.31527 | 0,492611 | 5.707196 |
| 160.1107 | 247 | 16.66667 | 0,487805 | 5.121951 |
| 161.368 | 201 | 19.85294 | 0,738916 | 6.451613 |
| 161.2246 | 218 | 20.19704 | 0,49505 | 7.5 |
| 160.0145 | 215 | 23.11436 | 0,735294 | 8.148148 |
| 161.6576 | 149 | 18.15182 | 0,33557 | 10.10101 |
| 159.5943 | 248 | 14.56311 | 0,4914 | 6.356968 |
| 159.8647 | 182 | 22.80702 | 1.772152 | 10.07557 |
| 160.3423 | 227 | 13.13869 | 0,244499 | 7.090465 |
| 161.7888 | 241 | 16.42512 | 0,484262 | 5.326877 |
| 162.0188 | 219 | 20.43269 | 0,973236 | 7.729469 |
Wenn Sie das Skript ausführen, können Sie sehen, dass beim Auswählen eines Kontrollkästchens ein neues Fenster mit X x Y geöffnet wird

Ich versuche zu verstehen, wie ich das Diagramm im aktuellen Fenster ersetzen und auch alle Details wie Spline-Linie, Markierungen usw. hinzufügen kann.
Ich habe versucht, mir die „Baumstruktur“ anzusehen, bin mir aber nicht sicher, wie ich die „Framebox(1)“ ersetzen soll.
Danke!
Erweiterte statistische ModellierungMassenanpassungBetreff: JSL ersetzt ein Rahmenfeld basierend auf einem KontrollkästchenIch sehe keine Möglichkeit, die numerischen Spalten über JSL zu entfernen.
Bei einem zweiten Blick habe ich eine Möglichkeit gefunden, nur die Zeichenspalten anzuzeigen.
Names Default To Here( 1 );
dt = Open( "$sample_data/big class.jmp" );
dis = Distribution( Continuous Distribution( Column( :height ) ), Local Data Filter );
mylist = (Report( dis ) << top parent)["Local Data Filter"][ListBoxBox( 1 )] << get items;
For( i = N Items( myList ), i >= 1, i--,
If( Column( dt, myList[i] ) << get data type != "Character",
(Report( dis ) << top parent)["Local Data Filter"][ListBoxBox( 1 )] << remove item( i )
)
);
Betreff: JSL ersetzt ein Rahmenfeld basierend auf einem KontrollkästchenDas funktioniert großartig, ich habe mir die Dokumentation angesehen, aber nicht herausgefunden, wie man etwas macht. Ich bin mir nicht sicher, ob es möglich ist
In der Datenfilteroption können Sie die Auswahl von „Numerisch“ deaktivieren (Bild unten). Wie kann ich das in JSL tun?

Ich habe versucht, diesem Beitrag zu folgen
https://community.jmp.com/t5/Discussions/Data-Filter-only-by-columns-that-are-of-type-character/td-p/39206
Aber ich verstehe das:

Aber was ich eigentlich möchte, ist nur eine Liste, die nur nach Zeichen gefiltert ist oder ob ich nach Wörtern filtern kann, die beispielsweise nur Wörter enthalten, die mit „PC_“ beginnen

https://community.jmp.com/t5/Discussions/Data-Filter-only-by-columns-that-are-of-type-character/td-p/39206
Betreff: JSL ersetzt ein Rahmenfeld basierend auf einem KontrollkästchenIch glaube, dass Sie das bekommen, was Sie wollen, indem Sie einen lokalen Datenfilter verwenden und ihn in einer seiner mehreren Optionen einrichten

names default to here(1);
dt = Current Data Table();
Bivariate(
Y( :Y4 ),
X( :X ),
Fit Spline( 0.1, Standardized, {Line Color( {212, 73, 88} )} ),
Fit Spline( 10000, {Line Color( {61, 174, 70} )} ),
Local Data Filter(
Auto clear( 1 ),
Add Filter( columns( :rowLeg1, :rowLeg2 ), Where( :rowLeg1 == "A" ) )
),
Column Switcher( :Y4, {:Y1, :Y2, :Y3, :Y4} ),
SendToReport(
Dispatch(
{},
"Bivar Plot",
FrameBox,
{Frame Size( 444, 359 ), Marker Size( 6 ),
Marker Drawing Mode( "Normal" ), Transparency( 0.5 ),
Row Legend(
Y2,
Color( 1 ),
Color Theme( "Blue to Gray to Red" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 1 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);
Schauen Sie sich die Dokumentation zum lokalen Datenfilter an, um zu erfahren, wie Sie ihn ändern können, um ihn an Ihre spezifischen Anforderungen anzupassen
Betreff: JSL ersetzt ein Rahmenfeld basierend auf einem KontrollkästchenDas funktioniert. Gibt es eine Möglichkeit, eine Zeilenlegendenauswahl zu erstellen, damit ich zwischen Legenden wechseln kann?
Nehmen wir an, ich habe zwei weitere Zeilen wie diese:

Dann habe ich im Diagramm zusätzlich zur Spaltenauswahl auf der rechten Seite eine Legendenauswahl

Ich habe versucht, ein Skript aus einem anderen Beitrag zu verwenden, aber jedes Mal, wenn ich die Zeilenlegende ändere, wird sie wie folgt dupliziert:

Ich habe versucht, die Baumstruktur durchzugehen und zu löschen, aber es funktioniert nicht.
Betreff: JSL ersetzt ein Rahmenfeld basierend auf einem KontrollkästchenDer beste Weg, das zu erreichen, was Sie wollen, ist die Verwendung eines Spaltenumschalters

names default to here(1);
dt = Current Data Table();
Bivariate(
Y( :Y4 ),
X( :X ),
Fit Spline( 0.1, Standardized, {Line Color( {212, 73, 88} )} ),
Fit Spline( 10000, {Line Color( {61, 174, 70} )} ),
Column Switcher( :Y4, {:Y1, :Y2, :Y3, :Y4} ),
SendToReport(
Dispatch(
{},
"Bivar Plot",
FrameBox,
{Frame Size( 444, 359 ), Marker Size( 6 ),
Marker Drawing Mode( "Normal" ), Transparency( 0.5 ),
Row Legend(
Y2,
Color( 1 ),
Color Theme( "Blue to Gray to Red" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 1 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);
Es ermöglicht, interaktiv Änderungen am Diagramm vorzunehmen. Wenn dann eine neue Spalte ausgewählt wird, werden alle Änderungen auf die neue Spalte angewendet.
Wenn Sie dies immer noch ohne den Spaltenumschalter tun möchten, müssen Sie in Ihrer Optionsbox bei einer neuen Auswahl das Skript für die Bivariate extrahieren, das Skript dann analysieren und das alte ersetzen Geben Sie den Spaltennamen mit dem neuen Spaltennamen ein, löschen Sie den alten bivariaten Bericht und führen Sie dann das neu geänderte Skript aus.