こんにちは
二変量プロットの特定の行のマーカーを強調表示しようとしています。
プロットを手動で作成し、スクリプト ウィンドウに保存し、行の凡例として「テーマ」列を手動で選択しました。
しかし、問題は、スクリプトを確認したときに上記の手順が見つからないことです。
これが私が言いたいことです
dt = Open( "$sample_data/Hollywood Movies.jmp" );
dt = currentdatatable(); // Don't know I need this here anyway
Bivariate(
Y( :Domestic Gross ),
X( :Foreign Gross ),
Fit Where( :Genre == "Action", Fit Line( {Line Color( {212, 73, 88} )} ) ),
Fit Where(
:Genre == "Adventure",
Fit Line(
{Line Color( {61, 174, 70} )},
{Set α Level( 4.06068261874589e-315 )}
)
),
Fit Where( :Genre == "Animation", Fit Line( {Line Color( {66, 112, 221} )} ) ),
Fit Where( :Genre == "Comedy", Fit Line( {Line Color( {204, 121, 41} )} ) ),
Fit Where( :Genre == "Drama", Fit Line( {Line Color( {40, 182, 143} )} ) ),
Fit Where( :Genre == "Fantasy", Fit Line( {Line Color( {162, 43, 221} )} ) ),
Fit Where( :Genre == "Horror", Fit Line( {Line Color( {196, 189, 43} )} ) ),
Fit Where( :Genre == "Romance", Fit Line( {Line Color( {39, 174, 174} )} ) ),
Fit Where( :Genre == "Thriller", Fit Line( {Line Color( {197, 41, 201} )} ) ),
SendToReport( // What does this mean here ? Why we need this ?
Dispatch( // What does this mean here ? why we need this ?
{},
"Bivar Plot",
FrameBox,
{Frame Size( 377, 299 ), Row Legend(
Theme,
Color( 1 ),
Color Theme( "JMP Default" ),
Marker( 1 ),
Marker Theme( "Standard" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);それが生み出す

私がやりたいのは、どの列を行の凡例にするかを制御し、その列の行を強調表示することです。 このようなもの

確かにこれはマニュアルには存在しないと思います。
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 15 ),
New Column( "sex",
Character,
"Nominal",
Set Values(
{"F", "F", "F", "F", "F", "M", "M", "M", "F", "F", "F", "M", "M", "M",
"M"}
)
),
New Column( "height",
Numeric,
"Continuous",
Format( "Best", 10 ),
Set Values( [59, 61, 55, 66, 52, 60, 61, 51, 60, 61, 56, 65, 63, 58, 59] )
),
New Column( "weight",
Numeric,
"Continuous",
Format( "Best", 10 ),
Set Values(
[95, 123, 74, 145, 64, 84, 128, 79, 112, 107, 67, 98, 105, 95, 79]
)
),
Set Row States(
[192, 193, 193, 193, 193, 32833, 32833, 32832, 192, 192, 192, 32832, 32832,
32832, 32832]
)
);
// Here is the Bivariate Platform. It will honor the rowstates
// I have provided some selections, etc. but you can change them
// to whatever selections you want
Bivariate(
Y( :height ),
X( :weight ),
Fit Where( :sex == "F", Fit Line( {Line Color( "Medium Dark Red" )} ) ),
Fit Where( :sex == "M", Fit Line( {Line Color( "Medium Dark Blue" )} ) )
);
// Here is the code to create the new rowstate column
// But it can easily be done manually by just creating a new
// column, and then going to the Col Info window, and setting the
// data type to Row State
dt << New Column( "The RowStates", rowstate );
// This is the command that copies the rowstates from the
// rowstate column, to the new column called The RowStates<BR />// To do this interactively just go to the column panel and<BR />// right click on the red star in front of the new column<BR />// and select "Copy From Rowstates"
dt:The RowStates << copy from rowstates;
// dt:The RowStates << Hide(1); // This will hide the column from view
// The rest is manual(interactive);
// Go to the red triangle on the Bivariate output and select
// Save Script==>To Data Table
// Once it is saved, Go to the green triangle in front of the script that was just
// saved to the data table. Right click on the green triangle and select Edit
// Now add the following line as the first line
// :The RowStates << Copy to Row states;
// Make sure you remove the // from the front of the line
// Now, whenever you run the script, the row states from when you created the graph
// will be applied before the graph is created長い説明ありがとうございました。 本当にとても役に立ちます。 という部分が気に入りました」点(マーカー)を強調表示しているのはグラフであると考えていることを意味します。しかし残念ながら、強調表示を制御するのはデータ テーブルです。 」 これは素晴らしい説明です。
OTH、項目 2) についての質問ですが、どうすればよいですか? 長年の経験を持つあなたにとっては、JSL に書き込むのはほんの 1 秒ですが、私にとっては、そこに書かれている本当の意味や実行方法を見つけるのに 1 週間はかかります。 あなたの思考プロセスを示すスクリプトを投稿して、他の人もそれから恩恵を受けることを願っています;)
プロット上の特定のマーカー (点) の強調表示とその後の残りのマーカーのフェードアウトは、実際にはデータ テーブルとデータ テーブルで選択される行にリンクされています。 列から作成された二変量散布図があるデータ テーブルに移動し、データ テーブル内の行の 1 つを選択すると、二変量グラフ内の点が強調表示され、他のすべての点が淡色表示になります。データ テーブル内の行を選択し、データ テーブルに関連付けられたすべてのグラフ内でその行を強調表示するこの動作は、JMP の基本原理の 1 つです。したがって、グラフ内の特定の凡例、またはグラフ内の点 (マーカー) のグループをクリックしたときに表示される動作は、実際にはそれらの点を強調表示するようにグラフに指示しているわけではありませんが、実際には、データ テーブル内の特定の行を選択するようにデータ テーブルに指示し、その後、データ テーブル内のそのアクションによって、関連するすべてのグラフに対して、選択された行のデータを表すグラフ内の点を強調表示するように指示されます。この動作は JMP の初期から存在しています。さて、なぜ私はあなたにそれを話すのにそんなに時間を費やしたのでしょうか。そうですね、強調表示されたデータ ポイントが保存されたスクリプトにキャプチャされない理由が理解できないというあなたの説明は、ポイント (マーカー) を強調表示しているのはグラフであると考えていることを示唆しています。しかし残念ながら、強調表示を制御するのはデータ テーブルです。つまり、グラフに必要な強調表示を付ける方法の 1 つは、強調表示されたマーカーを作成するために選択する必要があるデータ テーブル内の行を選択し、データ テーブルを保存することです。データテーブル内の行選択が保存され、それを開いてグラフのスクリプトを実行すると、希望どおりにグラフが表示されます。通常、これは最適なソリューションではありません。どのマーカーを強調表示するかを処理するための他の 3 つの方法は、通常、より良い選択です。
- 必要な行を具体的に選択するコードをスクリプトに手動で追加します。
- データ型「rowstate」の新しい列を作成し、必要に応じてグラフを表示するために必要なデータ テーブルの選択やマーカーなどを設定し、Rowstate を新しい列に保存します。行状態列。次に、保存したスクリプトにステートメントを追加し、目的の行状態値を行状態列からデータ テーブルの行状態にコピーし、グラフを生成します。
- 行選択にはローカル データ フィルターを使用します。ローカル フィルターは、データ テーブル内の行を物理的に選択しません。代わりに、特定のプラットフォームに仮想選択環境を提供し、データ テーブル自体で選択したものと同じように動作します。ローカル データ フィルターは、保存されたスクリプトに保存されます。
これが理にかなっているといいのですが。さらに質問がある場合は、質問してください。