グラフに曲線を描いてみようとしています。ただし、その曲線は、変数のセットによっては異なります。ローカルデータフィルターで選択されたものに基づいてyfunction()を変更する良い方法があるかどうか疑問に思っています。たとえば、年齢を12歳から13歳に変更する場合、正弦波などの代わりに正弦波が必要です。
注:これはJMPライブ用であるため、フィルター変更ハンドラーはそこでは機能しないと思います。私はもともと、それぞれを個別に変数で描画してそれらすべてをプロットしていましたが、それはJMPライブでも機能せず、理由がわかりません。
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt << Graph Builder(
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 43 ) ), Smoother( X, Y, Legend( 44 ) ) ),
Local Data Filter(
Add Filter(
columns( :age ),
Where( :age == 12 ),
Display( :age, N Items( 6 ) )
)
),
SendToReport(
Dispatch(
{},
"height",
ScaleBox,
{Min( 47.4910973084886 ), Max( 78.4293207137927 ), Inc( 5 ),
Minor Ticks( 1 )}
),
Dispatch(
{},
"weight",
ScaleBox,
{Min( 43.4685580652897 ), Max( 152.924994106993 ), Inc( 20 ),
Minor Ticks( 1 )}
),
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Graphics Script(
5,
Description( "" ),
Pen Color( "red" );
Pen Size( 3 );
Y Function(
49.5348183760347 + 101.831529865667 / 2 * (1
+Sine( (2 * Pi() * (x - 50)) / 16.6 )),
x
);
)}
)
)
);
ジャーナリングを気にしないのであれば、この目標は簡単です。 Y Function()の呼び出しでユーザー関数を使用し、GraphBuilderの起動外で定義するだけです。 次に、データフィルターで状態ハンドラーを使用して新しい関数を定義し、フレームボックス<< Reshowを送信します。
ジャーナルを作成する必要がある場合は、変数を使用しないでください。 その場合、リテラル値のみを使用するグラフィックスクリプトを追加し、フィルターに基づいて新しいスクリプトを削除して追加します。
楽しむ!
それはJMPライブでは機能しませんが?私が見てきたことから、JMPライブは本当にスクリプトが好きではありません。どちらにせよやってみます。
JMP Liveは、サーバー上で任意の(おそらく任意の)ユーザースクリプトを実行しないと確信しています。
Quit();
また
while( 1, 0 );
また
x = j( 4e9, 1, 0);
また
wait( 1e6 );
これらのいずれかがグラフィックスクリプトに表示され、サーバーの動作が中断される可能性があります。
JMP Liveのユースケースは、作成したGUIを介してJMPの組み込みツールを使用して、視聴者がデータをスライスアンドダイスできるようにすることを中心に展開されます。
- グラフ間での選択動作のためにグラフをリンクする
- データフィルターを使用してデータをサブセット化する
- サブセット化のためにドリルダウンします(多分...私がJMPライブを見たのは久しぶりです...実際には公衆バージョン。)