オーバーレイ プロット内のデータをデータ テーブルからリンク解除する<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />オーバーレイ プロットに表示されるデータとそのデータ テーブルの間のリンクを「解除」する方法を探してスクリプト ガイドを調べましたが、これを行う方法が見つからないようです。その理由は、ユーザーが指定したさまざまな日付範囲のデータを使用して複数の OP を作成したいためです。データ フィルターを使用して関心のある日付範囲を選択し、結果の OP で X 軸と Y 軸のデータを自動スケーリングできるようにしています。これにより、これらのパラメーターは年間で劇的に変化するため、これらのパラメーターを指定する必要がなくなります。
問題を単純化するために、基本的に私が達成しようとしていることを示すモックアップ コードを以下に含めました。つまり、月 1 ~ 3 と 5 ~ 7 のデータを表示する 2 つの OP を作成し、これらの各 OP のリンクを解除します。これにより、データ フィルターから選択されたデータが変更されても、OP に表示されるデータは最初に指定されたものから変更されません。これを達成する方法についてのご提案をいただければ幸いです。
ログをクリア();
dt = Open( "C:\Program Files\SAS\JMP\10\Samples\Data\Time Series\Raleigh Temps.JMP" );
sdate = 1;
edate = 3;
obj = dt << データ フィルター(
オートクリア(1)、
ウィンドウを表示 ( 0 )、
フィルターを追加(
columns( :Name( "月" ) ),
どこ(
:Name( "月" ) >= sdate & :Name( "月" ) <=
編集
)
)、
モード( 表示( 1 )、インクルード( 1 ) )
);
obj << 閉じる;
オーバーレイ プロット(
X( :Name( "月" ) ),
Y( :Name( "温度" ) ),
個別の軸( 1 )、
Connect Thru Missing( 1 )、
接続ポイント( 1 )、
SendToReport(
急送(
{}、
「101」、
スケールボックス、
{主グリッドを表示( 1 )、回転ラベル( "自動" )}
)
)
);
sdate = 5;
edate = 7;
obj = dt << データ フィルター(
オートクリア(1)、
ウィンドウを表示 ( 0 )、
フィルターを追加(
columns( :Name( "月" ) ),
どこ(
:Name( "月" ) >= sdate & :Name( "月" ) <=
編集
)
)、
モード( 表示( 1 )、インクルード( 1 ) )
);
obj << 閉じる;
オーバーレイ プロット(
X( :Name( "月" ) ),
Y( :Name( "温度" ) ),
個別の軸( 1 )、
Connect Thru Missing( 1 )、
接続ポイント( 1 )、
SendToReport(
急送(
{}、
「101」、
スケールボックス、
{主グリッドを表示( 1 )、回転ラベル( "自動" )}
)
)
);
Re: オーバーレイ プロットのデータをデータ テーブルからリンク解除するスペースが気になる場合は、グラフ ビルダーがデフォルトで表示するコントロール パネルのことを思い浮かべるかもしれませんが、これは [コントロール パネルを表示(0)] でオフにすることができます。
また、条件を列にエンコードできる場合は、グループ X とグループ Y の役割を使用して、かなりコンパクトな表示を作成できます。
以下の例では、条件をエンコードするために会社の規模を示す列を作成します。
dt =開ける( "$SAMPLE_DATA\Financial.jmp" ) ;
dt <<新しい列( "会社の規模" 、方式(もしも( :名前( 「#emp」 ) < 10000 、 "小さい" 、 "大きい" ) ) ) ;
dt <<グラフビルダー(
サイズ( 638 、 770 ) 、
コントロールパネルを表示( 0 ) 、
変数(
バツ( :名前( 「資産(100万ドル)」 ) ) 、
Y ( :名前( 「売上(百万ドル)」 ) ) 、
グループX ( :会社の規模) 、
グループY ( :タイプ)
) 、
要素(ポイント(バツ、 Y 、伝説( 1 ) ) 、よりスムーズに(バツ、 Y 、伝説( 2 ) ) )
) ;
Re: オーバーレイ プロットのデータをデータ テーブルからリンク解除するJeff さん、この件に関してご協力いただきありがとうございます。グラフビルダーの提案に感謝しました。私が扱っているのは 2 列 x 6 行のグラフィカル表示マトリックスであり、グラフ ビルダーのオーバーヘッドが多くのスペースを占有するためです。ただし、将来のグラフがそれほど大きくなく、対話機能があると役立つ場合にこの例を確認できるのは素晴らしいことです。
Re: オーバーレイ プロットのデータをデータ テーブルからリンク解除するJMP 10 では、元のデータ テーブルを乱すことなくフィルタリングできるローカル データ フィルタを使用できます。
また、オーバーレイ プロットの代わりにグラフ ビルダーを使用することをお勧めします。
以下に例を示します。
dt =開ける( "$SAMPLE_DATA\Time Series\Raleigh Temps.JMP" ) ;
新しい窓( 「私の窓」 、
V リストボックス(
dt <<グラフビルダー(
変数(バツ( :名前( 「月/年」 ) ) 、 Y ( :温度) ) 、
要素(ライン(バツ、 Y 、伝説( 4 ) 、行の順序( 0 ) 、要約統計量( "平均" ) ) ) 、
ローカルデータフィルター(
位置( { 207 、 385 } ) 、
フィルターの追加(列( :年) 、どこ( :年>= 1980年& :年<= 1982年) ) 、
モード(選択する( 0 ) 、見せる( 1 ) 、含む( 1 ) )
)
) ;
dt <<グラフビルダー(
サイズ( 570 、 518 ) 、
変数(バツ( :名前( 「月/年」 ) ) 、 Y ( :温度) ) 、
要素(ライン(バツ、 Y 、伝説( 4 ) 、行の順序( 0 ) 、要約統計量( "平均" ) ) ) 、
ローカルデータフィルター(
位置( { 207 、 385 } ) 、
フィルターの追加(列( :年) 、どこ( :年>= 1982年& :年<= 1990年) ) 、
モード(選択する( 0 ) 、見せる( 1 ) 、含む( 1 ) )
)
) ;
)
) ;
Re: オーバーレイ プロットのデータをデータ テーブルからリンク解除するまたは、新しいウィンドウのアイデアを使用します。
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
新しいウィンドウ( "私のウィンドウ",
アウトライン ボックス( "マイ アウトライン ボックス",
V リストボックス(
lo = 9;
こんにちは = 11;
op1 = オーバーレイ プロット(
X( :ランタイム )、
Y(:オキシ)、
Where( :Runtime >= lo & :Runtime <= hi )
);、
lo = 10;
こんにちは = 12;
op2 = オーバーレイ プロット(
X( :ランタイム )、
Y(:オキシ)、
Where( :Runtime >= lo & :Runtime <= hi )
);
)
)
);
Re: オーバーレイ プロットのデータをデータ テーブルからリンク解除するジャーナルのアイデアを使用した 1 つの可能性を次に示します。
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
lo = 9;
こんにちは = 11;
op1 = オーバーレイ プロット(
X( :ランタイム )、
Y(:オキシ)、
Where( :Runtime >= lo & :Runtime <= hi )
);
レポート(op1)<<ジャーナル();
jrn = 現在の日記();
lo = 10;
こんにちは = 12;
op2 = オーバーレイ プロット(
X( :ランタイム )、
Y(:オキシ)、
Where( :Runtime >= lo & :Runtime <= hi )
);
jrn << append(report(op2));
Re: オーバーレイ プロットのデータをデータ テーブルからリンク解除する提案してくれた皆さんに感謝します。どちらもこの問題に対する興味深いアプローチです。ただし、私は単一の VListBox ウィンドウで複数の OP を作成したいので、どちらも私の特定のアプリケーションでは機能しません (申し訳ありませんが、元の投稿ではそれについて明確でありませんでした)。これを行うためにあなたのアプローチのいずれかを機能させる方法がわかりません。何か案は?
新しい窓(
V リストボックス(
Op1 = オーバーレイ プロット(....)、
Op1 = オーバーレイ プロット(....)
)
);
Re: オーバーレイ プロットのデータをデータ テーブルからリンク解除するこの例は、少し異なる視点を提供する可能性があります。
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
lo = 9;
こんにちは = 11;
オーバーレイ プロット(
X( :ランタイム )、
Y(:オキシ)、
Where( :Runtime >= lo & :Runtime <= hi )
);
lo = 10;
こんにちは = 12;
オーバーレイ プロット(
X( :ランタイム )、
Y(:オキシ)、
Where( :Runtime >= lo & :Runtime <= hi )
);
Re: オーバーレイ プロットのデータをデータ テーブルからリンク解除する間違っている場合は訂正してください。ただし、プラットフォームとデータテーブルの間のリンクを切断することは不可能だと思います。 プロットはプラットフォームの外、たとえばジャーナルや新しいウィンドウに移動する必要があります。
この例では両方の方法が使用されています。 2 つのフィルター処理されたオーバーレイ プロットは両方とも同じジャーナルまたは個別のウィンドウに送信されます。
ログをクリアする() ;
dt =開ける( "$SAMPLE_DATA\Time Series\Raleigh Temps.JMP" ) ;
// データフィルター式
フィルター式=エクスプレッション(
オブジェクト= dt <<データフィルター(
オートクリア( 1 ) 、
ショーウィンドウ( 0 ) 、
フィルターの追加(
列( :名前( "月" ) ) 、
どこ( :名前( "月" ) >=日付& :名前( "月" ) <=編集)
) 、
モード(見せる( 1 ) 、含む( 1 ) )
) ;
オブジェクト<<近い;
) ;
// オーバーレイプロット
かぶせる=エクスプレッション(
オプ=オーバーレイプロット(
バツ( :名前( "月" ) ) 、
Y ( :名前( "温度" ) ) 、
自動再計算( 0 ) 、
個別の軸( 1 ) 、
コネクトスルーが見つかりません( 1 ) 、
コネクトポイント( 1 ) 、
レポートに送信(急送( {} 、 「101」 、スケールボックス、 {メジャーグリッドを表示( 1 ) 、回転ラベル( 「自動」 )} ) ) 、
見えない
)
) ;
// 最初のプロット
日付= 1 ;編集= 3 ;フィルター式;かぶせる;
// 新しい窓...
新しい=新しい窓( "月 " ||シャア(日付) || 「-」 ||シャア(編集) 、報告(オプ)[ 1 ] ) ;
// またはジャーナル
オプ<<ジャーナル;
// 2 番目のプロット
日付= 5 ;編集= 7 ;フィルター式;かぶせる;
新しい=新しい窓( "月 " ||シャア(日付) || 「-」 ||シャア(編集) 、報告(オプ)[ 1 】 ) ;
オプ<<ジャーナル;