列スイッチャー、ローカル データ フィルター、Ref Line の自動更新グラフ ビルダーを使用して棒グラフを作成し、ローカル データ フィルター、列スイッチャー、参照線をグラフに適用したいと考えています。 選択した列に応じて、ローカル データ フィルターとリファレンス ラインを自動的に切り替えることは可能ですか。 現時点では、列を切り替えると、完了したばかりの基準線が消えます。 Cpk と Ppk の 2 つの列を選択できます。 現在表示されている Cpk = 1.333 と Ppk = 1.333 に基準線を入れたいと思います。 同様に、ローカル データ フィルターを追加して、表示されている列に応じて最小 Cpk/Ppk 値と最大値 1.5 の間の値のみを表示したいと考えています。 シンプルなグラフビルダーでスクリプトを作成することでこれを行うことは可能ですか、それともダッシュボード/アプリケーションを調べる必要がありますか? これは私が現在持っているものです:
Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables(
X( :Feature ID, Order By( :Cpk , Ascending, Order Statistic( "Mean" ) ) ),
Y( :Cpk )
),
Column Switcher( :Cpk , {: Cpk , :Ppk }),
Elements( Bar( X, Y, Legend( 4 ) ) ),
Local Data Filter(
Add Filter( columns( :Cpk ), Where( :Cpk >= floor(Col Min(:Cpk )) & :Cpk <= 1.5 ) )
),
SendToReport(
Dispatch(
{},
"Cpk ",
ScaleBox,
{Add Ref Line( 1.333, "Solid", "Red", "", 3 )}
),
)
);グラフィックスクリプティングRe: 列スイッチャー、ローカル データ フィルター、Ref Line の自動更新わかりました、ありがとうございました。
私は会社のソフトウェアを使用しているので、アップグレードできるとは思わないので、データを表示する別の方法を考える必要があります. ローカルデータフィルターを更新しようとするのではなく、選択した列に応じて軸の制限を変更しようとすると、同様の問題が発生すると思いますか? 乾杯Re: 列スイッチャー、ローカル データ フィルター、Ref Line の自動更新JMP 13 でスクリプトを実行する際の最初の問題は、
ColSwitcher << get Current
はリテラル文字列ではないため、次のように変更する必要があります
char( ColSwitcher << get Current )
しかし、それを行うと、JMP は無限ループに入ります。
これは既知のエラーで、Column Switcher の変更によって Add Graphics Script が呼び出されるタイミングに関連していると思います。
いろいろ試してみましたが、解決には至りませんでした。 15 にアップグレードすることが唯一の選択肢であり、確実に修正されます。Re: 列スイッチャー、ローカル データ フィルター、Ref Line の自動更新やあ、
それをスクリプトにコピーすると、正しく動作しないようです。 グラフには、「グラフィック スクリプトがログにエラーを報告しました」というエラー メッセージが表示されます。 また、ログに報告されたエラーには、「Name Unresolved: weight{21} in access or Evaluation of 'weight' , weight/*###*/'」と記載されています。 JMP 13 を使用していますが、これが問題になるかどうかわかりません。
次のように、y 軸に表示される内容に関係なく、1.333 のままの基準線を追加することができました。
obj = dt_sum << Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables(
X( :Feature ID, Order By( :Cpk, Ascending, Order Statistic( "Mean" ) ) ),
Y( :Cpk)
),
Column Switcher( :Cpk, {: Cpk, :Ppk}),
Elements( Bar( X, Y, Legend( 4 ) ) ),
);
Report(obj)[FrameBox(1)] <<
Add Graphics Script(
1, Description( "Pen Script"),
Pen Color("red");
Pen Size(3);
Y Function(1.333, Feature ID);
);ただし、列スイッチャーをローカル データ フィルターとリンクして、列が切り替えられたときに特定の y 値を下回る値のみが表示および更新されるようにする方法はまだわかりません。
Re: 列スイッチャー、ローカル データ フィルター、Ref Line の自動更新はい、あなたが望むことをすることは可能です。ここに簡単な例があります
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
gb = dt << Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
ColSwitcher = gb << Column switcher( :weight, {:weight, :height} );
Report( gb )[framebox( 1 )] << add graphics script(
theCol = ColSwitcher << Get Current;
If(
theCol == "weight",
Report( gb )[AxisBox( 2 )] << add ref line(
Col Mean( :weight ),
"solid",
red,
"Mean",
2
),
theCol == "height",
Report( gb )[AxisBox( 2 )] << add ref line(
Col Mean( :height ),
"solid",
red,
"Mean",
2
)
);
);