列の最後の N 値をグラフにするにはどうすればよいですか?こんにちは、みんな、
私はまだ JSL に慣れていないので、スクリプト コードを構築しながら進めています。
M 値の列、たとえば列(M-25) から (M) の最後の 25 個のデータ ポイントのグラフを管理図ウィンドウに追加しようとしています。
これを行うためにチャートビルダースクリプトを変更することを考えています。
Control Chart Builder(
Size( 534, 454 ),
Show Two Shewhart Charts( 0 ),
Show Control Panel( 0 ),
Show Limit Summaries( 0 ),
Show Capability( 0 ),
Variables( Y( :Name( "MyColumn" ) ) ),
Chart(
Points( Statistic( "Individual" ) ),
Limits( Sigma( "Moving Range" ) ),
Warnings( Test Beyond Limits( 1 ) )
),
SendToReport(
Dispatch(
{},
"graph display 1 title",
TextEditBox,
{Set Text( "Last 25 Observations" )}
),
Dispatch( {}, "MyColumn Limit Summaries", OutlineBox, {Close( 1 )} )
)
)私が抱えている問題は、表示する最後の N 値のみを選択する方法です (N は 25、30、または 100 のいずれかです)。 Igor や Matlab などの他のプログラミング言語での私の経験は、列のデータのサブセットのみをグラフ化する方法について JSL に翻訳されるわけではありません。
可能であれば、管理図のようにデータと行インデックスをプロットしたいのですが、オーバーレイ プロットでそれができることはわかっていますが、平均をグラフに表示するのも好きです。 データをY×Xにフィットしてプロットしないことを好みます。
ありがとう!
Re: 列の最後の N 値をグラフにするにはどうすればよいですか?こんにちは@ゴドウィン、
それぞれの特定の状況は少し異なるため、当面の詳細に応じてコードをわずかに変更する必要がある場合があります。 データ テーブルと作業中のコードを共有していただければ、私やこのスレッドの他のメンバーが、あなたがやろうとしていることの詳細にもっと適切に対処できる可能性があります。
ありがとう!、
DS
Re: 列の最後の N 値をグラフにするにはどうすればよいですか?グラフの最後の N 列を制御するために使用した正確なコードを共有していただけますか。 改造には運がありません。
Re: 列の最後の N 値をグラフにするにはどうすればよいですか?ありがとう!Re: 列の最後の N 値をグラフにするにはどうすればよいですか?Names DefaultToHere(1);
// Open a table and give it a table reference ('dt')
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Select the data you do not want, and exclude them
dt << select where( :sex == "F" );
dt << hide and exclude;
// Clear the selections
dt << clear select;
// Create the chart, only none excluded/hidden rows will be displayed
dt << Graph Builder(
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 6 ) ), Smoother( X, Y, Legend( 7 ) ) )
);Re: 列の最後の N 値をグラフにするにはどうすればよいですか?ありがとう! 質問を正しく送信したかどうかわかりません。 与えられたビッグデータセットのグラフを描画したいと考えています。 ただし、特定の列が条件を満たしているかどうかを確認し、条件が満たされている場合は、グラフをプロットするための対応する行を検討する必要があります。 これをjslスクリプトで実行したいと思います。 非常に初心者なので助けていただけますか。 ありがとう!
Re: 列の最後の N 値をグラフにするにはどうすればよいですか?これはスレッドのトピックとは異なる質問のようですが、次のようなことを試してみてください。
Names DefaultToHere(1);
// Open a table and give it a table reference ('dt')
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Get a list of all the columns in the table
cols = dt << getColumnNames("String");
// Define any logical condition that identifies one or more columns by its name
targetCols = {};
for(c=1, c<=NItems(cols), c++, if(Contains(cols[c], "gh"), InsertInto(targetCols, cols[c])));
// Make a plot using'taregtCols' as the y variables
biv = dt << OneWay(X(:sex), Y(Eval(targetCols)));Re: 列の最後の N 値をグラフにするにはどうすればよいですか?こんにちは。特定のビッグ データ セットのグラフを描画したいと考えています。 ただし、特定の列が if 条件を満たしていることを確認してから、グラフをプロットするための対応する行を検討する必要があります。 これをjslスクリプトで実行したいと思います。 非常に初心者なので助けていただけますか。 ありがとう!Re: 列の最後の N 値をグラフにするにはどうすればよいですか?特定の 1 つの列が指定された if 条件を満たすデータ テーブルのデータをグラフ化するにはどうすればよいですか?Re: 列の最後の N 値をグラフにするにはどうすればよいですか?こんにちは@txnelson 、ご提案ありがとうございます。 最終的にコードを少し変更して、ゼロ以外のエントリではなく空のエントリを検索するようにしました。 あなたの方法はうまくいきました、そして私はそれを私の特定の状況に少し適応させるだけで済みました。
再度、感謝します!
lastNmiss = 0;
For( ii = N Rows( dt ), ii >= 1, ii--,
If( IsMissing(dt:weight[ii])!=1, lastNmiss++ );
If( lastnmiss == 8, Break() );
);
lastNmiss = N Row( dt ) - ii;
n = N Row( dt );
biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Where( Row() > (n - lastnmiss) )
);
Re: 列の最後の N 値をグラフにするにはどうすればよいですか?以下はスクリプトへの簡単な変更です。 @Mark_Baileyと書きました。これは、最後の x 個の非ゼロ値を持つ行を検索します。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:weight[38] = 0;
last n = 0;
For( i = N Rows( dt ), i >= 1, i--,
If( :weight[i] > 0, last n++ );
If( last n == 5, Break() );
);
last n = N Row( dt ) - i;
n = N Row( dt );
biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Where( Row() > (n - last n) )
);
Re: 列の最後の N 値をグラフにするにはどうすればよいですか?@Mark_Bailey助けてくれてありがとう。
現在、そのコードを変更して、最後の N 個のゼロ以外の値をグラフ化することを検討しています。 欠損値がある可能性のある列に複数の行があり、エントリがある行のみをグラフ化したいと考えています。 現時点では、過去 N (私の場合は 25) 内にゼロ以外の行が 1 つまたは 2 つだけある場合、それらの 1 つまたは 2 つの行のみがグラフ化されます。
ご協力/ご意見をいただければ幸いです。 ありがとう!
Re: 列の最後の N 値をグラフにするにはどうすればよいですか?うまくいきました! ありがとう。
詳細に合わせて少し変更する必要がありましたが、うまくいきました。
Re: 列の最後の N 値をグラフにするにはどうすればよいですか?以下は、適応可能な二変量クラスとビッグクラスの例です。
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
last n = 5;
n = N Row( dt );
biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Where( Row() > (n - last n) )
)
それは単純だ。