グラフビルダーは自動スケールしませんこんにちは、
ダッシュボードからグラフビルダーとデータフィルターを起動しています。 グラフは、x 軸に日付、y 軸にカウントを表示します。 日付をフィルターすると、日付範囲外のデータがグラフから消えますが、グラフはフィルターされた範囲内の日付に一致するように X 軸を自動スケールしません (代わりに、X 軸の日付範囲はフィルターする前と同じです)。日付範囲)。
データテーブルを開いて列のプロパティに移動し、軸に移動して最小値と最大値を削除すれば機能することはわかっていますが、自動スケーリングを自動的に行う必要があります。
グラフビルダースクリプトは次のようになります。
SPC = Open("C:\blahblahblah.csv",invisible);
column(SPC,"blah")<<データ型(数値)<<モデリングタイプ(連続)<<形式(Best,1);
列(SPC,"blah2")<<データ型(数値)<<モデリングタイプ(連続)<<形式(Best,1);
プロットボックス=vlistbox(
SPC << グラフ ビルダー(
サイズ(1372、867)、
コントロールパネルを表示(0)、
自動再計算( 1 )、
自動ストレッチ( 0 )、
変数( X( :実行日時)、Y( :blah )、Y( :blah2 )、オーバーレイ( :blah3 ) )、
要素(
位置( 1, 1 )、
ポイント( X、Y、凡例( 1 )、ジッター( 1 ))、
)、
要素(
位置( 1, 2 )、
ポイント( X、Y、凡例( 4 )、ジッター( 1 ))、
)、
SendToReport(
急送(
{}、
"実行日時",
スケールボックス、
{間隔( "日" ),
Inc( 3 )、マイナーティック( 1 )、
(その後、多数の基準線が表示されます)
...
誰か私にアドバイスをいただけますか?
ありがとう。
Re: グラフビルダーが自動スケールしないこんにちは。グラフ ビルダーが必要な X 軸の日付設定を保持し、フィルター処理時にこれらの設定で再スケールできることを発見した 1 つの方法は、日付を「順序」データ型に変更することです。
Re: グラフビルダーが自動スケールしないJMP 14 でも、X 軸の基準線を使用した同様の再スケーリング動作が見られます。 言い換えれば、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 を持っていないのでテストできませんが、動作すると思います。
Re: グラフビルダーが自動スケールしないお返事ありがとうございます。
奇妙なことに、スケールのロックとスケールのロックの解除を実行すると、基準線の外側の日付範囲では日付がスケールされません (基準線を含まない日付範囲を選択しようとすると、日付 (x 軸) がスケールされません)スケールではありませんが、その範囲外のデータは除外されます。基準線のグループ内にある日付範囲を選択すると、日付 (X 軸) がスケールされます)。 私はJMP 11を持っています。おそらくこれはこのバージョンのバグでしょうか? それとも参照行にコーディングすべきではなかったのでしょうか? X軸に沿って基準線をプロットする方法がわかりません...
Re: グラフビルダーが自動スケールしないGraphBuilder でも同じ動作が見られます。オプションに気づきましたロックスケールグラフビルダーで。 ただし、GraphBuilder の作成時に Lock Scales(0) を指定しても、X 軸は再スケールされません。GraphBuilder が作成された後、スケールのロックをオンにしてオフにすると、軸はスケールされますが、カスタム軸の書式設定は行われません。 以下の例では yyyyQq を使用しています。 以下のスクリプトは、JMP 12、13、および 14 で実行されます。
JMP 14 を使用している場合は、52 行目の /* を削除してスクリプトを実行します。JMP 14 には、フィルターが変更されたときに実行されるスクリプトであるデータ フィルター ハンドラーがあります。 したがって、特別な軸形式がある場合は、それをハンドラーで指定できます。
GraphBuilder 呼び出し関数の Lock Scales(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 );