JSL - dynamische Änderung der DiagrammlegendeHallo Freunde,
Ich verwende den folgenden Code, um die Legende und die Splines im Bivirat-Diagramm pro Radiobox-Benutzerauswahl zu ändern.
Der Splines-Teil funktioniert gut, aber die Legende ändert sich nicht 
Irgendwelche Ideen?

//Begin Script;
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
variables = {"age", "sex"};
// Initial nlevels is the number of levels of 'age', as it is the first by-group used.
nlevels=6;
// Creating the legend. For each selection, the previous spline fits are removed, then
// new ones are generated.
BC_legend = Panel Box( "Choose Legend",
legend = Radio Box(
{"age", "sex"},
fitVar = legend << Get Selected;
Match( fitVar,
"age",
(Summarize(vals = By( :age ), c=count );
For(ii = 1, ii <=nlevels, ii++,
obj << (Curve[1] << Remove Fit );
);
obj << Group By( :age ) << Fit Spline( 0.1, standardized );
nlevels = nItems(vals);
),
"sex",
(Summarize(vals = By( :sex ), c=count );
For(ii = 1, ii <=nlevels, ii++,
obj << (Curve[1] << Remove Fit );
);
obj << Group By( :sex ) << Fit Spline( 0.1, standardized );
nlevels = nItems(vals); )
);
));
// Fitting the initial Bivariate fit with 'age' as the by-group, adding the legend
// to control the selections.
nw = New Window( "BigClassBivariate",
HListBox(
obj = dt << Bivariate(
Y( :weight ),
X( :height ),
Group By( :age ),
Fit Spline( 0.1, standardized ),
SendToReport(
Dispatch(
{},
"Bivar Plot",
FrameBox,
{Frame Size( 493, 354 ),Marker Size( 2 ), Marker Drawing Mode( "Normal" ), 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_legend
));
//End Script;
Betreff: JSL - dynamische Änderung der DiagrammlegendeIch glaube, ich habe einen Weg gefunden, dies auf einem Variabilitätsdiagramm auszuführen.
Was muss hinzugefügt werden, wenn ich mehrere Variabilitätsdiagramme (mit: ***) mit dynamischer Legende haben möchte?
//Begin Script;
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
variables = {"age", "sex"};
// Initial nlevels is the number of levels of 'age', as it is the first by-group used.
fitVar = "age";
nlevels = 6;
// Creating the legend. For each selection, the previous spline fits are removed, then
// new ones are generated.
BC_legend = Panel Box( "Choose Legend",
legend = Radio Box(
{"age", "sex"},
fitVar = legend << Get Selected;
Match( fitVar,
"age",
(Summarize( vals = By( :age ), c = count ) ; Report( obj )[Border Box( 2 )] << Delete ;
Report( obj )[FrameBox( 1 )] << Row Legend( "age", color( 1 ), Marker( 1 ) ) ;
// obj << Group By( :sex );
nlevels = N Items( vals ) ; ;
),
"sex",
(Summarize( vals = By( :sex ), c = count ) ; Report( obj )[Border Box( 2 )] << Delete ;
Report( obj )[FrameBox( 1 )] << Row Legend( "sex", color( 1 ), Marker( 1 ) ) ;
// obj << Group By( :sex );
nlevels = N Items( vals ) ; )
);
)
);
// Fitting the initial Bivariate fit with 'age' as the by-group, adding the legend
// to control the selections.
nw = New Window( "BigClassBivariate",
H List Box(
obj = dt <<
Variability Chart(
Y( :weight ),
X( :height ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Connect Cell Means( 1 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
SendToReport(
Dispatch(
{},
"Variability Chart",
FrameBox,
{Marker Size( 8 ), Marker Drawing Mode( "Normal" ) ;
Row Legend(
dt:(fitVar),
Color( 1 ),
Color Theme( "JMP Default" ),
Marker( 0 ),
Marker Theme( "Classic" ),
Continuous Scale( Cont ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
),
BC_legend
)
);
//End Script;
Betreff: JSL - dynamische Änderung der DiagrammlegendeHallo tolles Skript
Wie verwende ich dieses Skript in einem einfachen Variabilitätsdiagramm?
Beste R
Ilan
Betreff: JSL - dynamische Änderung der Diagrammlegende@RB ,
Die Legende muss von Ihrem Skript entfernt und hinzugefügt werden. Außerdem denke ich, dass es sicherer ist, Gegenstände vom letzten zum ersten zu entfernen.
Anbei 2 Skripte:
- DynamicChartLegend_Working.jsl, das einige Änderungen an Ihrem Skript vornimmt.
- DynamicChartLegend_Generic.jsl nimmt weitere Änderungen vor, sodass Sie nicht für jede Ihrer Variablen „Cookie-Cutter“-Code verwenden müssen. Dies geschieht durch die Verwendung von Referenzvariablen und durch das Erstellen und Verwenden der Funktion GetLevels().
Sie haben nicht erwähnt, welche Version von JMP Sie derzeit verwenden. Wenn diese Skripte nicht funktionieren, geben Sie bitte Informationen zur JMP-Version an.