JSL ersetzt eine Framebox 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 Aktivieren eines Kontrollkästchens ein neues Fenster mit dem X durch 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
Vielen Dank!
SkriptingBetreff: JSL ersetzt eine Framebox basierend auf einem KontrollkästchenDer beste Weg, um das zu handhaben, 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, und wenn dann eine neue Spalte ausgewählt wird, werden alle Änderungen auf die neue Spalte angewendet.
Wenn Sie dies immer noch nicht mit dem Spaltenumschalter tun möchten, müssen Sie dies in Ihrer Radiobox tun. Wenn Sie eine neue Auswahl treffen, extrahieren Sie das Skript für die Bivariate und parsen dann das Skript, wobei das alte ersetzt wird Spaltenname mit dem neuen Spaltennamen, löschen Sie den alten bivariaten Bericht, und führen Sie dann das neu geänderte Skript aus.
Betreff: JSL ersetzt eine Framebox basierend auf einem Kontrollkästchendas funktioniert, gibt es eine Möglichkeit, einen Zeilenlegendenselektor zu erstellen, damit ich zwischen Legenden wechseln kann?
Sagen wir, ich habe 2 weitere Zeilen wie folgt:

dann in der Grafik zusätzlich die Spaltenauswahl habe ich auf der rechten Seite eine Legendenauswahl

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

Ich habe versucht, die Baumstruktur durchzugehen und zu löschen, aber es funktioniert nicht..
Betreff: JSL ersetzt eine Framebox basierend auf einem KontrollkästchenIch glaube, dass Sie bekommen können, was Sie wollen, indem Sie einen lokalen Datenfilter verwenden und ihn in einer von 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 )
)}
)
)
);
Sehen Sie sich die Dokumentation zum lokalen Datenfilter an, um zu erfahren, wie Sie ihn ändern können, damit er Ihren spezifischen Anforderungen entspricht