JSL - 動的チャート凡例の変更皆さん、こんにちは、
以下のコードを使用して、ラジオ ボックスのユーザー選択ごとに bivirate チャートの凡例とスプラインを変更しています。
スプライン部分は正常に動作しますが、凡例は変わりません:(
何か案は?

//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;
Re: JSL - 動的なグラフの凡例の変更これを変動チャートで実行する方法を見つけたと思います。
複数の (by:*** を使用して) 動的な凡例を含む変動グラフが必要な場合は、何を追加する必要がありますか?
//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;
Re: JSL - 動的なグラフの凡例の変更ハイ グレート スクリプト
シンプルな変動チャートでこのスクリプトを使用するにはどうすればよいですか?
ベストR
宜蘭
Re: JSL - 動的なグラフの凡例の変更@RB 、
凡例はスクリプトで削除および追加する必要があります。 また、最後から最初に項目を削除する方が安全だと思います。
2 つのスクリプトが添付されています。
- DynamicChartLegend_Working.jsl は、スクリプトにいくつかの変更を加えます。
- DynamicChartLegend_Generic.jsl はさらに変更を加えるため、変数ごとに「クッキー カッター」コードを使用する必要はありません。 これは、参照変数を使用し、関数 GetLevels() を作成して使用することによって行われます。
現在使用している JMP のバージョンについては言及されていません。 これらのスクリプトが機能しない場合は、JMP のバージョンに関する情報を提供してください。