こんにちは、
ダッシュボードからグラフビルダーとデータフィルターを起動しています。 グラフはx軸に日付、y軸にカウントされます。 日付をフィルタリングすると、日付範囲外のデータがグラフから消えますが、グラフは、フィルタリングされた範囲内の日付と一致するようにx軸を自動スケーリングしません(代わりに、x軸の日付範囲はフィルタリング前と同じです日付範囲)。
データテーブルを開き、列のプロパティ、軸の順に移動し、最小値と最大値を削除すると機能することはわかっていますが、自動スケーリングを自動的に実行する必要があります。
グラフビルダースクリプトは次のようになります。
SPC = Open( "C:\ blahblahblah.csv"、invisible);
column(SPC、 "blah")<< data type(Numeric)<< Modeling Type(Continuous)<< Format(Best、1);
column(SPC、 "blah2")<< data type(Numeric)<< Modeling Type(Continuous)<< Format(Best、1);
plot_box = vlistbox(
SPC <<グラフビルダー(
サイズ(1372、867)、
コントロールパネルを表示(0)、
自動再計算(1)、
自動ストレッチ(0)、
変数(X(:実行日時)、Y(:blah)、Y(:blah2)、オーバーレイ(:blah3))、
Elements(
位置(1、1)、
Points(X、Y、Legend(1)、Jitter(1))、
)、
Elements(
位置(1、2)、
Points(X、Y、Legend(4)、Jitter(1))、
)、
SendToReport(
急送(
{}、
「実行日時」、
ScaleBox、
{Interval( "日")、
Inc(3)、マイナーティック(1)、
(その後、一連の参照線)
..。
誰かアドバイスしてもらえますか?
ありがとうございました。
こんにちは、Graph Builderが必要なX軸の日付設定を保持し、フィルタリング時にこれらの設定で再スケーリングできるようにする1つの方法は、日付を「通常の」データ型に変更することです。
X軸の参照線を使用して、JMP14でも同様の再スケーリング動作が見られます。 言い換えれば、JMPはスクリプトまたは参照行を維持しようとしているようです。JSLを介して参照線を指定する例を次に示します。
Dispatch(
{},
"Date",
ScaleBox,
{Format( "yyyyQq", 6 ), Min( 3092688000 ), Max( 3284668800 ),
Interval( "Year" ), Inc( 1 ), Minor Ticks( 0 ),
Add Ref Line( Informat("06Mar2003", "ddmonyyyy"), "Solid", "Gray", "", 1 ),
Add Ref Line( Informat("16Jul2006", "ddmonyyyy"), "Solid", "Black", "", 1 )}
)参照線を追加する方法のモックアップを投稿すると、ボタンボックスを追加して再スケールを強制するスクリプトを表示できます。 JMP 11を持っていないのでテストできませんが、動作すると思います。
お返事ありがとうございます。
不思議なことに、ロックスケールとロック解除スケールを実行すると、参照線の外側の日付範囲に対して日付がスケーリングされません(参照線を含まない日付範囲を選択しようとすると、日付(x軸)はスケーリングされます)拡大縮小されませんが、その範囲外のデータは除外されます。参照線のグループ内にある日付範囲を選択すると、日付(x軸)が拡大縮小されます)。 私はJMP11を持っています。おそらくこれはこのバージョンのバグですか? それとも、参照行にコーディングするべきではなかったのでしょうか。 x軸に沿って参照線をプロットする方法はわかりませんが...
GraphBuilderでも同じ動作が見られます。オプションに気づきましたロックスケールGraphBuilderで。 ただし、GraphBuilderの作成時にLock Scales(0)を指定した場合でも、x軸は再スケーリングされません。GraphBuilderが作成された後、 Lock Scalesをオンにしてオフにすると、軸はスケーリングされますが、カスタム軸のフォーマットはありません。 以下の例では、yyyyQqを使用しています。 以下のスクリプトは、JMP 12、13、および14で実行されます。
JMP 14を使用している場合は、52行目の/ *を削除して、スクリプトを実行します。JMP 14には、フィルターが変更されたときに実行されるスクリプトであるデータフィルターハンドラーがあります。 したがって、特別な軸フォーマットがある場合は、ハンドラーで指定できます。
GraphBuilder呼び出し関数のLockScales(0)は、説明されているように機能していないようです。 しかし、有効化と無効化は機能しているようです。
Names Default to Here(1);
dt = Open("$sample_data/Australian Tourism.jmp");
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Show Legend( 0 ),
Lock Scales(0),
Variables(
X( :Date ),
Y( :Name( "Revenue ($'000)" ) ),
Y( :Name( "Bed occupancy rate (%)" ) ),
Y( :Name( "Average length of stay (days)" ) )
),
Elements(
Position( 1, 1 ),
Points( X, Y, Legend( 4 ) ),
Smoother( X, Y, Legend( 3 ) )
),
Elements(
Position( 1, 2 ),
Points( X, Y, Legend( 1 ) ),
Smoother( X, Y, Legend( 2 ) )
),
Elements(
Position( 1, 3 ),
Points( X, Y, Legend( 6 ) ),
Smoother( X, Y, Legend( 5 ) )
),
SendToReport(
Dispatch(
{},
"Date",
ScaleBox,
{Format( "yyyyQq", 6 ), Min( 2953282344.82759 ), Max( 3408220800 ),
Interval( "Year" ), Inc( 1 ), Minor Ticks( 0 )}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Tourism Trends" )} )
)
);
filter = gb << Local Data Filter(
Add Filter(
columns( :Year )
)
);
gb << Lock Scales(1);
wait(0);
gb << Lock Scales(0);
/*
f = function({a},
print(a);
gb << Lock Scales(1);
wait(0);
gb << Lock Scales(0);
gb << Dispatch(
{},
"Date",
ScaleBox,
{Format( "yyyyQq", 6 ),
Interval( "Year" ), Inc( 1 ), Minor Ticks( 0 )}
);
);
rs = filter << Make Filter Change Handler( f );