チェックボックスに基づいてフレームボックスを置き換えるJSLこれは私のコードです
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
)
);私のデータテーブル
| バツ | 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 | 19701 年 21 月 | 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 |
スクリプトを実行すると、チェック ボックスを選択すると、X x Y の新しいウィンドウが開くことがわかります。

現在のウィンドウのグラフを置き換え、スプラインライン、マーカーなどのすべての詳細を追加する方法を理解しようとしています...
「ツリー構造」を見てみましたが、「framebox(1)」を置き換える方法がわかりません
ありがとう!
高度な統計モデリングマスカスタマイゼーションRe: JSL がチェックボックスに基づいてフレームボックスを置き換えるJSL 経由で数値列を削除する方法がわかりません。
改めて考えてみると、Character欄だけを表示する方法を思いつきました。
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 )
)
);
Re: JSL がチェックボックスに基づいてフレームボックスを置き換えるこれはうまく機能します。ドキュメントを参照しましたが、何かを行う方法が見つかりませんでした。それが可能かどうかはわかりません
データ フィルター オプションでは、数値の選択を解除できます (下の図)。JSL でこれを行うにはどうすればよいですか?

この投稿に従ってみました
https://community.jmp.com/t5/Discussions/Data-Filter-only-by-columns-that-are-of-type-character/td-p/39206
しかし、私はこれを理解しています:

しかし、私が実際に欲しいのは、文字のみでフィルタリングされたリスト、またはたとえば「PC_」で始まる単語のみを含む単語でフィルタリングできるかどうかです。

https://community.jmp.com/t5/Discussions/Data-Filter-only-by-columns-that-are-of-type-character/td-p/39206
Re: JSL がチェックボックスに基づいてフレームボックスを置き換えるローカル データ フィルターを使用し、いくつかのオプションのいずれかに設定することで、必要なものが得られると思います。

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 )
)}
)
)
);
ローカル データ フィルターに関するドキュメントを参照して、特定のニーズに対応できるようにフィルターを変更する方法を確認してください。
Re: JSL がチェックボックスに基づいてフレームボックスを置き換えるこれは機能します。凡例を切り替えることができるように行凡例セレクターを作成する方法はありますか?
次のような行がさらに 2 つあるとします。

次に、グラフ内に列セレクターを追加し、右側に凡例セレクターを追加します。

別の投稿のスクリプトを使用しようとしましたが、行の凡例を切り替えるたびに、次のように複製されます。

ツリー構造を調べて削除しようとしましたが、うまくいきません。
Re: JSL がチェック ボックスに基づいてフレーム ボックスを置き換えるあなたが望むものを処理する最良の方法は、列スイッチャーを使用することです。

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 )
)}
)
)
);
これにより、グラフに対話的に変更を加えることができ、新しい列が選択されると、すべての変更が新しい列に適用されます。
列スイッチャーを使用せずにこれを実行したい場合は、ラジオ ボックスで新しい選択が行われたときに、二変量のスクリプトを抽出し、スクリプトを解析して古いスクリプトを置き換えます。新しい列名を使用して古い二変量レポートを削除し、新しく変更したスクリプトを実行します。