二変量プラットフォームを使用して、離散時間単位 (2021 年の第 1 週の場合は 202101 など) でデータのプロットを作成するスクリプトがあります。 使用される時間単位は交渉可能ではなく、連続として扱われる場合は正しく間隔をあけません。202052 と 202101 の間の距離は 202101 と 202102 の間の距離と同じではありませんが、これらの距離は連続する週であるため、同じである必要があります。 私の解決策は、値1、2、3、...で「シーケンス」列を作成し、それを202052、202101、202102、...とペアにして、値ラベルを「シーケンス」列に適用することでした(1には値がありますラベル 202052、2 には値ラベル 202101、3 には値ラベル 202102 があります)、「シーケンス」列を Fit Y by X の X として使用します。 このソリューションは、出力をジャーナルする場合を除いて、うまく機能します。値のラベル付けが保持されず、ジャーナルのプロットは、値ラベルを使用する代わりに、シーケンス列の元の値に戻ります。 時々、値ラベルはジャーナルに転送されますが、保存して再度開くと、x 軸の値は元の値に戻りました。 違いは、スクリプトまたは ctrl + J をジャーナルに使用すること (値ラベルを一時的に保存する) と、コピー --> ジャーナルに貼り付けること (値ラベルを保存しない) だと思います。
これを行う別の方法を見つけることができるか、誰かが別の方法を提案できるかもしれませんが、値ラベルがレポート ウィンドウからジャーナルに転送されないことが意図された JMP の動作であるかどうかを知りたいと思っています。 この動作は、JMP の将来のバージョンで変更される可能性がありますか?
JMP Pro 14.3.0 を使用しています。 この問題は JMP Pro 15.2.1 でも発生することを確認しました。 以下は、問題を再現するスクリプトの例です。
// Data Table
dt = New Table( "Label Example",
Add Rows( 6 ),
New Column( "Week", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [202052, 202052, 202101, 202101, 202102, 202102] ) ),
New Column( "Sequence", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 1, 2, 2, 3, 3] ) ),
New Column( "Value", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [12, 39, 9, 1, 22, 9] ) ),
New Column( "Group", Character, "Nominal", Set Values( {"A", "B", "A", "B", "A", "B"} ) )
);
week_list = :Week << get values;
sequence_list = :Sequence << get values;
week_list_names = {};
// Build the Value Labels List
For( i = 1, i <= N Items( week_list ), i++,
If( !Contains( week_list_names, Parse( "\!"" || Char( sequence_list[i] ) || "\!" = \!"" || Char( week_list[i] ) || "\!"" ) ),
Insert Into( week_list_names, Parse( "\!"" || Char( sequence_list[i] ) || "\!" = \!"" || Char( week_list[i] ) || "\!"" ) )
)
);
:Sequence << Data Type( Character );
:Sequence << Value Labels( week_list_names );
:Sequence << Data Type( Numeric ) << Modeling Type( Continuous );
value_by_week = Bivariate(
Y( :Value ),
X( :Sequence ),
Fit Where( :Group == "A", Fit Each Value( {Line Color( {212, 73, 88} )} ) ),
Fit Where( :Group == "B", Fit Each Value( {Line Color( {66, 112, 221} )} ) ),
SendToReport(
Dispatch( {}, "Bivariate Fit of Value By Sequence", OutlineBox, {Set Title( "Bivariate Fit of Value By Sequence" )} ),
Dispatch( {}, "1", ScaleBox, {Inc( 1 ), Minor Ticks( 0 ), Label Row( Show Major Grid( 1 ) ), Label Row( Label Orientation( "Angled" ) )} ),
Dispatch( {}, "2", ScaleBox, {Inc( 10 ), Minor Ticks( 5 ), Label Row( Show Major Grid( 1 ) )} ),
Dispatch( {}, "Sequence", TextEditBox, {Set Text( "Week" )} )
)
);
value_by_week_rep = value_by_week << Report;
my_jrn = New Window( "Test Journal", <<JOURNAL></JOURNAL>x 列から年と週の値を抽出し、タイムスタンプに変換することを選択できます。 次に、x 軸に投げると、自動的に正しく配置され、x 軸の書式設定をいじると、好きなように日付を表示することができます。
面白い! それを試してみようとは思いもしませんでしたが、「新しいウィンドウで再実行」もうまくいきます。 JMP 16 で問題が修正されたことを嬉しく思います。 これは、インストールに取りかかるまでは許容できる回避策です。 共有してくれてありがとう。
JMP 15.2であなたのエラーを再現しました。JMP 16 で修正されたようです。
やあ@drew_baumgartel 、
サンプルスクリプトを使用すると、同じ動作が見られます。
ただし、赤い三角形に移動して新しいウィンドウで再実行を選択すると、値のラベルを表示できました。
Rerun in new windowRerun in new window新しいウィンドウで再実行
results after rerunning in new windowresults after rerunning in new window新しいウィンドウで再実行した後の結果
乾杯、
スタン