JSLを使用して実装する方法こんにちは、みんな、
JSLを使用してエクセル(添付)に概説されている手順をどのように実装すればよいですか。また、私がJSLを使用して実装しようとしているいくつかの中間ステップを達成するのに役立つ可能性のあるJSLスクリプトも添付しました。
Bivariate(
Y( :y1_y2_y3 ),
X( :x1_x2_x3 ),
Fit Where(
:Case == "A",
Fit Special( yTran( "Log" ), {Line Color( "Dark Green" )} )
),
Fit Where(
:Case == "B",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Red" )} )
),
Fit Where(
:Case == "C",
Fit Special( yTran( "Log" ), {Line Color( "Black" )} )
),
Fit Where(
:Case == "D",
Fit Special( yTran( "Log" ), {Line Color( "Magenta" )} )
),
Fit Where(
:Case == "E",
Fit Special( yTran( "Log" ), {Line Color( "Blue" )} )
),
Fit Where(
:Case == "F",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Cyan" )} )
),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Min( 2.318802 ), Max( 6.35577464892554 ), Inc( 0.5 ), Minor Ticks( 1 ),
Add Ref Line( 0.526, "Solid", "Black", "yref_1", 1 ),
Add Ref Line( 1.21, "Solid", "Black", "yref_2", 1 ),
Add Ref Line( 2.421, "Solid", "Black", "yref_3", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 11, 0 ), Min( 0.0000000003 ),
Max( 0.00001144934215806 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0.000000579, "Solid", "Black", "x_ref3", 1 ),
Add Ref Line( 0.000000053, "Solid", "Black", "x_ref2", 1 ),
Add Ref Line( 0.0000000075, "Solid", "Black", "xref_1", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{DispatchSeg( Line Seg( 1 ), {Line Color( "Dark Green" )} ),
DispatchSeg( Line Seg( 6 ), {Line Color( "Medium Dark Red" )} ),
DispatchSeg( Line Seg( 11 ), {Line Color( "Black" )} ),
DispatchSeg( Line Seg( 16 ), {Line Color( "Magenta" )} ),
DispatchSeg( Line Seg( 21 ), {Line Color( "Blue" )} ),
DispatchSeg( Line Seg( 26 ), {Line Color( "Medium Dark Cyan" )} )}
)
)
)再:どのように私はJSLを使用して実装するのですか?こんにちはジム、
Case = A / B / Cの2番目の条件がColumn2 == "20/30/40"で満たされている場合、対数線形プロット(Y軸上の対数)を実行しようとしています。以下のスクリプトを投稿しました(2つの少し異なる方法)が、以下のようにエラーが出ています。どこが悪いの?
予期しない "とCPP"。おそらく、"、"、または ")"がありません。
関数 "Fit Where"の引数を解析しようとしています。
6行目28列目::Case == "A"►and Column2 == "20"、
1。第一の方法:
二変量(
Y(:名前( "Y1"))、
X(:X1)
// Fit Fit(yTran( "Log")、{線の色({213、72、87})})、
どこに合わせる(
:ケース== "A"、列2 == "20"、
Fit Special(yTran( "Log")、{線の色( "ダークグリーン")})、
)
SendToReport(
ディスパッチ(
{}、
"1"、
ScaleBox、
{Min(60.936357421875)、Max(81.283232421875)、Inc(2)、
マイナーティック(1)、ラベル列(
{メジャーグリッドを表示(1)、マイナーグリッドを表示(1)}
)}
)
ディスパッチ(
{}、
"2"、
ScaleBox、
{スケール( "Log")、フォーマット( "Scientific"、11)、最小(0.0000002)、
最大(0.000634968347287381)、Inc(1)、マイナーティック(1)、
ラベル行(
{メジャーグリッドを表示する(1)、マイナーグリッドを表示する(1)、フォントサイズを設定する(12)}
)}
)
)
)
2。第二の方法:
二変量(
Y(:名前( "Y1"))、
X(:X1)
// Fit Fit(yTran( "Log")、{線の色({213、72、87})})、
どこに合わせる(
:ケース== "A"
:Column2 == "20"、
Fit Special(yTran( "Log")、{線の色( "ダークグリーン")})、
)
SendToReport(
ディスパッチ(
{}、
"1"、
ScaleBox、
{Min(60.936357421875)、Max(81.283232421875)、Inc(2)、
マイナーティック(1)、ラベル列(
{メジャーグリッドを表示(1)、マイナーグリッドを表示(1)}
)}
)
ディスパッチ(
{}、
"2"、
ScaleBox、
{スケール( "Log")、フォーマット( "Scientific"、11)、最小(0.0000002)、
最大(0.000634968347287381)、Inc(1)、マイナーティック(1)、
ラベル行(
{メジャーグリッドを表示する(1)、マイナーグリッドを表示する(1)、フォントサイズを設定する(12)}
)}
)
)
)
ありがとう、
広告
再:どのように私はJSLを使用して実装するのですか?こんにちはジム、私は両方(一度に1つ)を試してみました
dt << 列によるマーカー (:ウェハID)。
dt << グループ別マーカー (:ウェハID)。
以下のようなプロットをする前に、しかしそれは私が欲しいものを行いません
Biv = dtStack << 二変量 (
Y(...
ありがとう、
広告
再:どのように私はJSLを使用して実装するのですか?明確な説明をしてくれたJimに感謝します。試してみましょう。
よろしく、
広告
再:どのように私はJSLを使用して実装するのですか?あなたのOpen()関数に関して、あなたのJMPデータテーブルがあなたのDocumentsフォルダに保存されていて "filename.jmp"と呼ばれていればそれは正しいです。
コード
dtStack = dtSumm << Stack(
columns( :x1, :x2, :x3, :y1, :y2, :y3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :Case )),
Number of Series( 2 ),
Contiguous
);
Stack Data Table Platformを使用しています
テーブル==>スタック
データテーブルに対して手動で実行して、スクリプトと同じ結果を得ることができます。 しかし基本的には、積み重ねる列はx 1、x 2、x 3の2セットと、y 1、y 2、y 3の同じyバリアントがあります。 したがって、Columns()仕様の6つの列の指定、およびNumber of Series(2)の設定。 Contigous要素は、リストをx1、y1などと交互にするのではなく、途中で分割することを示します。 一連の列を積み重ねると、測定値はDataという名前の新しい列に配置されます。 そして、列名はLabelという新しい列に配置されます。 2組の列を積み重ねているので、列DataとData 2、LabelとLabel 2があります。
// Clean Up data table
dtStack << delete columns( {"Label", "Label 2"} );
dtStack:Data << set name( "x1_x2_x3" );
dtStack:Data 2 << set name( "y1_y2_y3" );
このコードでは、Label列とLabel 2列が不要になったため、それらを削除してから、DataとData 2の名前をわかりやすい名前に変更しています。
Stack PlatformについてはUsing JMP documentで読むことができます。
ヘルプ==>本==> JMPを使う
再:どのように私はJSLを使用して実装するのですか?こんにちはジム、
Excelファイルを開いてJMPワークシートとして保存しました。それから私は使っています
dt = 開いた ( "C:¥Users¥user_name¥Documents¥filename.jmp" ;
このフォーマットは正しいですか?
私はあなたのコードをインプリメントした後にプロットを得ることができないと思います、私のデータセットパラメータはパラメータ名などで少し異なるのであなたのコードをもっとよく理解する必要があります。
「ラベル」、「ラベル2」、データ、データ2とは何ですか?データセットでそれらを明示的に定義する必要がありますか。今のところ、それらは定義されていません。作成したデータセットテーブルでそれらが定義されているのがわかりません。
dtStack = dtSumm << スタック (
列(:x1、:x2、:x3、:y1、:y2、:y3)、
ソースラベル列( "ラベル" )
スタックデータ列( "データ" )
名 ( 「スタックされていない列」 ((Keep(:Case))、
シリーズ数( 2 )
隣接している
;
//データテーブルをクリーンアップする
dtStack << 列を削除 ({ "ラベル" 、 「ラベル2」 ;));
dtStack:データ<< セット名 ( "x1_x2_x3" ;
dtStack:データ2 << セット名 ( "y1_y2_y3" ;
よろしく、
広告
再:どのように私はJSLを使用して実装するのですか?スプレッドシートのレイアウトはどのようなものですか?もしそれが行と列のテーブルであるなら..... JMPデータテーブルのように、それから構文はちょうど:
dt = open("<PATH to="" your="" excel="" file="">");</PATH>再:どのように私はJSLを使用して実装するのですか?こんにちはジム、
ああ!なるほど。。。気づかなかった。これを説明していただきありがとうございます。それはいいです !ExcelファイルからJMPにデータを読み込んでいます。これを行う賢い方法はありますか?
よろしく、
広告
再:どのように私はJSLを使用して実装するのですか?わかりました。 データテーブルを作成するために私が提供したすべてのコードはそこに置かれました、ちょうどコードを示すために例のデータテーブルを作成することができるように。 データテーブルはExcelから直接入力することも、データがある場所に入力することもできます。 データを読み込むと、スクリプトの唯一の実部が必要になります。
// Create the Median Table
dtSumm = dt << Summary(
Group( :Case ),
Median( :x1 ),
Median( :x2 ),
Median( :x3 ),
Median( :y1 ),
Median( :y2 ),
Median( :y3 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
);
dtStack = dtSumm << Stack(
columns( :x1, :x2, :x3, :y1, :y2, :y3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :Case )),
Number of Series( 2 ),
Contiguous
);
// Clean Up data table
dtStack << delete columns( {"Label", "Label 2"} );
dtStack:Data << set name( "x1_x2_x3" );
dtStack:Data 2 << set name( "y1_y2_y3" );
Biv = dtStack << Bivariate(
Y( :y1_y2_y3 ),
X( :x1_x2_x3 ),
Fit Where(
:Case == "A",
Fit Special( yTran( "Log" ), {Line Color( "Dark Green" )} )
),
Fit Where(
:Case == "B",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Red" )} )
),
Fit Where( :Case == "C", Fit Special( yTran( "Log" ), {Line Color( "Black" )} ) ),
Fit Where(
:Case == "D",
Fit Special( yTran( "Log" ), {Line Color( "Magenta" )} )
),
Fit Where( :Case == "E", Fit Special( yTran( "Log" ), {Line Color( "Blue" )} ) ),
Fit Where(
:Case == "F",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Cyan" )} )
),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Min( 2.318802 ), Max( 6.35577464892554 ), Inc( 0.5 ), Minor Ticks( 1 ),
Add Ref Line( 0.526, "Solid", "Black", "yref_1", 1 ),
Add Ref Line( 1.21, "Solid", "Black", "yref_2", 1 ),
Add Ref Line( 2.421, "Solid", "Black", "yref_3", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 11, 0 ), Min( 0.0000000003 ),
Max( 0.00001144934215806 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0.000000579, "Solid", "Black", "x_ref3", 1 ),
Add Ref Line( 0.000000053, "Solid", "Black", "x_ref2", 1 ),
Add Ref Line( 0.0000000075, "Solid", "Black", "xref_1", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{DispatchSeg( Line Seg( 1 ), {Line Color( "Dark Green" )} ),
DispatchSeg( Line Seg( 6 ), {Line Color( "Medium Dark Red" )} ),
DispatchSeg( Line Seg( 11 ), {Line Color( "Black" )} ),
DispatchSeg( Line Seg( 16 ), {Line Color( "Magenta" )} ),
DispatchSeg( Line Seg( 21 ), {Line Color( "Blue" )} ),
DispatchSeg( Line Seg( 26 ), {Line Color( "Medium Dark Cyan" )} )}
)
)
);
ところで、あなたはデータを入力するためにどのような方法を使っていますか?あなたがそれに問題を抱えているならば、我々もそれに取り組むことができます。
再:どのように私はJSLを使用して実装するのですか?こんにちはジム、
あなたの迅速な解決策をありがとう!あなたが助けることができるならば、私はもう少し質問があります。
これがJSLスクリプトで大規模なデータセットに簡単に拡張できるかどうか私は思っています。
1。各ケースのインスタンス数「A」、「B」、....「F」をハードコードしたようです。
あなたがそれぞれのケースの2-3のインスタンスを持っているなら、そうすることは大丈夫です、しかし、私がもっと "A"、"B" .. "F"のためにそれぞれ100のインスタンスのようなものを持っているならどうなります。それでは、以下のコードで "A"を何百回も繰り返す必要がありますか?
値を設定(
{ "A" 、 "A" 、 "A" 、 "B" 、 "B" 、 "B" 、 "C" 、 "C" 、 "C" 、 "D" 、 "D" 、 "D" 、 "E" 、 "E" 、
"E" 、 "F" 、 "F" 、 "F" }
2。以下に示すように、列変数の各値「x1」、「x2」....「y3」も入力しました。繰り返しますが、変数ごとに1000行を超えるデータがあります。それから、各変数のすべての値を入力するのが面倒に見えます。
新しいコラム ( "×1" 、
数値、
「連続」 、
フォーマット ( "ベスト" 、 12年 )
値を設定(
[ 1.61428690437666 、 10.1190080125253 、 6.73662807021899 、 8.01466805846589 、
6.68158041069847 、 5.7112128821412 、 2.84688009253613 、 8.24143884561082 、
7.93797713835799 、 7.60500406538651 、 6.10376724167353 、 7.49901866647003 、
6.75689551558008 、 8.47900118679714 、 8.31129239105815 、 2.25776032554558 、
3.47918899345697 、 7.54113635144146 ]
大規模なデータセットにこれを実装する面倒な方法がないかどうか教えてください。
よろしく、
広告
再:どのように私はJSLを使用して実装するのですか?こんにちはジム、
詳しい回答ありがとうございました。私はそれを感謝します、私がそれを試してみましょう、そして私はあなたに知らせます。
よろしく、
広告
再:どのように私はJSLを使用して実装するのですか?これは必要なテーブルと出力を生成する簡単なスクリプトです。

Names Default To Here( 1 );
//dt = Current Data Table();
dt = New Table( "Example",
Add Rows( 18 ),
New Column( "Case",
Character,
"Nominal",
Set Values(
{"A", "A", "A", "B", "B", "B", "C", "C", "C", "D", "D", "D", "E", "E",
"E", "F", "F", "F"}
)
),
New Column( "x1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[1.61428690437666, 10.1190080125253, 6.73662807021899, 8.01466805846589,
6.68158041069847, 5.7112128821412, 2.84688009253613, 8.24143884561082,
7.93797713835799, 7.60500406538651, 6.10376724167353, 7.49901866647003,
6.75689551558008, 8.47900118679714, 8.31129239105815, 2.25776032554558,
3.47918899345697, 7.54113635144146]
)
),
New Column( "x2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[5.47938474920207, 6.18766439511594, -6.23767012529314, 2.09002457182833,
4.8113689086524, 7.03651072603935, -3.04550198990374, 11.8452893346908,
-3.05733149292515, 1.30049361512582, 1.01507442873964, 2.09317649939774,
7.41286830274582, 7.34393706953047, 6.35773586672512, 6.45581826439945,
14.9562095399741, 10.0634660675686]
)
),
New Column( "x3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[11.2656869903562, 2.97417375436776, 2.7691367152201, 9.75641926280114,
9.70879299538533, 7.16035571615696, 9.79872763007834, 2.99361815483094,
7.34989095258795, 11.8347155967071, 13.840944548243, 6.91213509473278,
12.9829334337807, 4.69016477226892, 6.5541527241742, 10.449257706405,
8.71860875295487, 2.75703552707507]
)
),
New Column( "y1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[0.0000000021187715823, 0.0000000007070458434, 0.0000000021305415897,
0.000000002187751479, 0.0000000015163549964, 0.0000000006662765716,
0.0000000013568530851, 0.0000000022185225971, 0.0000000008126367887,
0.0000000014370349256, 0.0000000025500410724, 0.0000000019674810787,
-0.0000000005869971784, 1.82706897276242e-10, 0.0000000014877347984,
6.66831811738687e-11, 0.000000001044052589, 0.0000000019169076496]
)
),
New Column( "y2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[0.0000000111634035809, 0.0000000150934383918, 0.0000000092632031811,
0.0000000014897580792, 0.0000000129447047918, 0.0000000038471184132,
0.000000020378302554, 0.0000000084939824652, 0.0000000306867238143,
0.0000000083704926078, -0.0000000019845073029, 0.0000000221987482462,
-1.12731592825071e-10, 0.0000000341691546291, 0.0000000243189078007,
0.0000000142112672565, 0.0000000157219085064, 0.0000000163609065787]
)
),
New Column( "y3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values(
[0.0000001356080410826, 0.0000003110230604448, 0.0000000731675260394,
0.0000000683020170167, 0.0000000166660984052, 0.0000001245784167858,
0.0000001917424143272, 0.0000000592217777822, 0.0000000682651021339,
0.0000001310868753601, 0.0000000929550618751, 0.0000001752103336127,
0.0000000988598859477, 0.0000000990272186345, 0.000000121745118966,
0.0000001243361078368, 0.0000001992144095096, 0.000000090951358824]
)
)
);
// Create the Median Table
dtSumm = dt << Summary(
Group( :Case ),
Median( :x1 ),
Median( :x2 ),
Median( :x3 ),
Median( :y1 ),
Median( :y2 ),
Median( :y3 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
);
dtStack = dtSumm << Stack(
columns( :x1, :x2, :x3, :y1, :y2, :y3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :Case )),
Number of Series( 2 ),
Contiguous
);
// Clean Up data table
dtStack << delete columns( {"Label", "Label 2"} );
dtStack:Data << set name( "x1_x2_x3" );
dtStack:Data 2 << set name( "y1_y2_y3" );
Biv = dtStack << Bivariate(
Y( :y1_y2_y3 ),
X( :x1_x2_x3 ),
Fit Where(
:Case == "A",
Fit Special( yTran( "Log" ), {Line Color( "Dark Green" )} )
),
Fit Where(
:Case == "B",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Red" )} )
),
Fit Where( :Case == "C", Fit Special( yTran( "Log" ), {Line Color( "Black" )} ) ),
Fit Where(
:Case == "D",
Fit Special( yTran( "Log" ), {Line Color( "Magenta" )} )
),
Fit Where( :Case == "E", Fit Special( yTran( "Log" ), {Line Color( "Blue" )} ) ),
Fit Where(
:Case == "F",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Cyan" )} )
),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Min( 2.318802 ), Max( 6.35577464892554 ), Inc( 0.5 ), Minor Ticks( 1 ),
Add Ref Line( 0.526, "Solid", "Black", "yref_1", 1 ),
Add Ref Line( 1.21, "Solid", "Black", "yref_2", 1 ),
Add Ref Line( 2.421, "Solid", "Black", "yref_3", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 11, 0 ), Min( 0.0000000003 ),
Max( 0.00001144934215806 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0.000000579, "Solid", "Black", "x_ref3", 1 ),
Add Ref Line( 0.000000053, "Solid", "Black", "x_ref2", 1 ),
Add Ref Line( 0.0000000075, "Solid", "Black", "xref_1", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{DispatchSeg( Line Seg( 1 ), {Line Color( "Dark Green" )} ),
DispatchSeg( Line Seg( 6 ), {Line Color( "Medium Dark Red" )} ),
DispatchSeg( Line Seg( 11 ), {Line Color( "Black" )} ),
DispatchSeg( Line Seg( 16 ), {Line Color( "Magenta" )} ),
DispatchSeg( Line Seg( 21 ), {Line Color( "Blue" )} ),
DispatchSeg( Line Seg( 26 ), {Line Color( "Medium Dark Cyan" )} )}
)
)
);再:どのように私はJSLを使って実装するのですか?こんにちはジム、
ケース(A / B / C)ごとに異なるマーカースタイル(*、z、xなど)とマーカーカラー(赤/青)を選択し、JSLを使用して実装するにはどうすればよいですか?スタックJMPテーブルの各行にマーカーのスタイルと色を手動で割り当てることができますが、JSLで簡単に行うことができますか?