こんにちは、みんな、
Windows 11 マシンで JMP/JMP Pro を実行します。
非常に特殊な種類の問題を回避する方法、そしてそれを自動で (手動ではなく) 行う方法を知りたいです。例として、Air.jmp サンプル データ テーブルを使用して、現在の問題を示します。問題を示すスクリプトのファイルのコピーを添付しました。
私は毎日 (時には毎週) データを追加しているデータ テーブルを持っており、データ テーブルには日付に対してデータをプロットするスクリプトが組み込まれています。これを模倣するために、Air.jmp データ テーブルを 2 つに分割し、グラフ ビルダー グラフを作成し、次に「新しい」(データの後半部分) を他のテーブルの前半部分に連結して、スクリプトを再実行しました。
理想的には、グラフ ビルダーの日付の x 軸が最新の日付に自動的にスケーリングされる出力を取得したいと思います。

代わりに、グラフ ビルダー スクリプトの最後のバージョンをデータ テーブルに保存したときの値にのみ更新されるグラフが表示されます。出力は次のようになります。

データ ポイントをグラフ化して軸の増分を変更しない場合は、このようなことは起こりません。このデータ セット (前半) の軸の既定の増分は 2 年です。データの後半部分を追加し、データ テーブルでスクリプトを再実行すると、既定値が 5 年にリセットされ、すべてのデータがグラフ化されます。
ただし、たとえば、デフォルトの増分を 1 か月に変更し、スクリプトをデータ テーブル (前半) に保存してから、新しいデータを追加してスクリプトを再実行すると、軸の設定は元のスクリプトと同じままになり、新しいデータを含むように更新されません。スクリプトの大きな違いは、SendToReport コマンドです。
SendToReport(
Dispatch(
{},
"date",
ScaleBox,
{Min( 1597574016 ), Max( 1925078400 ), Interval( "Month" ), Inc( 1 ),
Minor Ticks( 1 )}
)
)このコマンドには、元のデータ テーブルの既存の日付範囲によって変更される Min() および Max() 日付設定があります。なぜこの制限が存在し、データ テーブルに追加された新しい日付を反映するように更新されず、スクリプトが再実行されないのかはわかりません。
月間隔を維持しながら、x 軸をネストして月も年ごとにグループ化しながら、この問題を回避する方法はありますか? テーブルに新しいデータを追加してスクリプトを再実行した後、新しいグラフで元のデータ テーブルではなく最新のデータ テーブルの Min() および Max() 設定を使用するようにしたいと思います。
うまくいけば、この問題は簡単に解決できます。そうでなければ、軸の Min() および Max() 入力がデータ テーブルの関連列内の現在の値によって自動的に更新されるように変更することを希望リストにリクエストするつもりです。
ご意見やフィードバックをいただければ幸いです。
DS
こんにちは@jthi さん
ありがとう、それでできました!私はグラフ ビルダーの Min() および Max() 引数で Expr(Col Min()) および Expr(Col Max()) を使用することを好みます。また、ありがたいことに、JMP はグラフの両端のパディングを自動的に行います。これは、グラフの時間スケールの大きさに応じて何らかの方法でスケーリングする必要がありますが、このデータ セットの場合、366 日パディングされるようです。
早速のご返事ありがとうございます!、
DS
プロット内に空白があっても問題ない場合は、sendtoreport から min と max を削除すればよいと思います。
Graph Builder(
Size(522, 456),
Show Control Panel(0),
Graph Spacing(4),
Variables(X(:date), Y(:Ozone Concentration)),
Elements(
Points(X, Y, Legend(3)),
Smoother(
X,
Y,
Legend(4),
Lambda(0.0000231899600250505),
Confidence of Fit(1)
)
),
SendToReport(
Dispatch(
{},
"date",
ScaleBox,
{Interval("Month"), Inc(1),
Minor Ticks(1), Label Row Nesting(2)}
)
)
)

または、他のオプションとしては、スクリプトを使用して計算し、それを使用して追加する方法があります (JMP が空の値を追加することにした場合は、再スケーリングを行う必要がある場合があります)。
Eval(EvalExpr(
Current Data Table() << Graph Builder(
Size(522, 456),
Show Control Panel(0),
Graph Spacing(4),
Variables(X(:date), Y(:Ozone Concentration)),
Elements(
Points(X, Y, Legend(3)),
Smoother(
X,
Y,
Legend(4),
Lambda(0.0000231899600250505),
Confidence of Fit(1)
)
),
SendToReport(
Dispatch(
{},
"date",
ScaleBox,
{Min(Expr(Col Min(:date))), Max(Col Max(col max(:date))), Interval("Month"), Inc(1),
Minor Ticks(1), Label Row Nesting(2)}
)
)
)
));
