グラフに参照線を表示するループを作成しますこんにちは皆さん、
私は1年前からJMP15を使用していますが、スクリプトに興味を持ち始めたばかりです。
表に基づいて、参照線をグラフで表示するスクリプトを作成したいと思います。
2つのテーブルがあります。データ(スクリプトを実行してvalue = f(time)をプロットする)と日付で、グラフに表示したい参照線に対応する日付を含む1つの列が含まれています。
それらのテーブルは私の投稿に添付されています。
これが私の現在のスクリプトで、テーブルの日付の最初の要素である列の日付に基づいて1つの参照行を表示しています。
ref1 = dates:name( "date" )[1];
Graph Builder(
Variables( X( :time ), Y( :value ),Page(:cat) ),
Elements( Points( X, Y, Legend( 4 ), Summary Statistic( "Mean" ) ) ),
SendToReport( Dispatch( {}, "time", ScaleBox( 2 ), {Add Ref Line( ref1, "Dotted", "Red", "", 2 )} ) )
);テーブル「dates」の値ごとに自動的に参照行を作成する「For」ループを作成したいと思います。
これが私が試したことです:
ref1 = dates:name( "date" )[1];
Graph Builder(
Variables( X( :time ), Y( :value ),Page(:cat) ),
Elements( Points( X, Y, Legend( 4 ), Summary Statistic( "Mean" ) ) ),
SendToReport( Dispatch( {}, "time", ScaleBox( 2 ),
{
For( i = 1, i <= N row( dates), i++,
f = dates [ i ];
Add Ref Line( f, "Dotted", "Blue", "", 2 )
);
})
);しかし、スクリプトを実行すると、参照線が表示されません。
この問題を解決するにはどうすればよいですか?
最後の質問:グラフ変数に「Page(:cat)」を追加しないと、参照線が表示されません...
ご協力ありがとうございました !!
グラフィックススクリプティングRe:グラフに参照線を表示するループを作成しますディスカッションコミュニティへようこそ!
参照線を追加する1つの方法は次のとおりです

表示ツリーを使用してJMP出力を操作する方法に関するドキュメントは、スクリプトインデックスにあります。
Names Default To Here( 1 );
dt = Data Table( "data" );
dates = Data Table( "dates" );
ref1 = dates:name( "date" )[1];
gb = Graph Builder(
Variables( X( :time ), Y( :value ), Page( :cat ) ),
Elements( Points( X, Y, Legend( 4 ), Summary Statistic( "Mean" ) ) ),
SendToReport(
Dispatch( {}, "time", ScaleBox( 2 ), {Add Ref Line( ref1, "Dotted", "Red", "", 2 )} )
)
);
// Add reference lines
For( i = 1, i <= N Rows( dates ), i++,
// Add for Cat = B
(Report( gb )[axisbox( 1 )]) << add ref line( dates:date[i], "Dotted", "Blue", "", 2 );
// Add for Cat = C
(Report( gb )[axisbox( 3 )]) << add ref line( dates:date[i], "Dotted", "Blue", "", 2 );
);
Re:グラフに参照線を表示するループを作成しますジムさん、素早い返信ありがとうございます。本当に助かりました。
Re:グラフに参照線を表示するループを作成しますこれは、表示ツリーを使用しないソリューションです。
Names Default To Here( 1 );
dt = Data Table( "data" );
dts = Data Table( "dates" );
// Get the unique values of cat
summarize(cat_unique = by(dt:cat));
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :time ), Y( :value ), Page( :cat ) ),
Elements( Points( X, Y, Legend( 4 ), Summary Statistic( "Mean" ) ) ),
);
// Add reference lines
for (c = 1, c <= nitems(cat_unique), c++,
scbox = c + 1;
for (i = 1, i <= nrows(dts), i++,
ref = dts:date[i];
gb << SendToReport(
Dispatch( {}, "time", ScaleBox( scbox ), {Add Ref Line( ref, "Dotted", "Red", "", 2 )} )
);
);
);