SendToReport機能のグラフビルダー内のifステートメントこんにちは、
Y軸が特定の列(エラーなど)である場合にのみ、グラフのY軸を変更できるようにします。しかし、グラフビルダーは内部のifを認識しないようです。ただし、ifステートメントを使用しない場合、これは正常に機能します。しかし、私はすべての種類のグラフにこの同じグラフ関数を使用できるようにしたいです。
graph_func = function({stackdt,title},{Default Local},
gb = Graph Builder(
Size( 1342, 905 ),
Variables(
X( :names ),
Y( as column(title) ),
Group X( :Type ),
Overlay( :GROUPs )
),
Elements( Box Plot( X, Y, Legend( 11 ) ) ),
Local Data Filter(
Add Filter(
columns( :Type),
Display( :Type, Size( 160, 30 ), List Display )
) ),
if(contains(title,"error"),
SendToReport(
Dispatch(
{},
title,
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 10 ), Min( 0.00001 ), Max( 0.03 ),
Inc( 1 ), Minor Ticks( 1 )}
)
) , ) );
return(gb);
);再:SendToReport機能のためのグラフビルダー内のIf文他の説明で述べたように、Send To Report()は、JMPがスクリプトを保存して、行ったカスタマイズをキャプチャできるようにすることを目的としています。スクリプトを作成するときにウィンドウをカスタマイズするより良い方法があります。例えば、
gb = dt << Graph Builder( /* usual plot arguments */ );
If( error plot,
Report( gb )[AxisBox(1)] << Min( 0 ) << Max( 10 ) << Inc( 1 );
);
デフォルトのカスタマイズでGraph Builderを起動します(プロットエラー用ではありません)。例外にフラグを立てて(エラーをプロット)、If()関数を使用してメッセージをオブジェクトに送信するかどうかを判断する方法があります。上記の例では、エラープロット引数はフラグ(ブール変数)にすることも、エラーをプロットするときにtrueを返す式にすることもできます。この場合、スケールを変更するためにメッセージが垂直軸に送信されます。この図を使用して、好きなカスタマイズを作成できます。
再:SendToReport機能のためのグラフビルダー内のIf文これを行う簡単な方法は、Graph Builderによって作成された表示オブジェクトにメッセージを渡すことです。 メッセージは、グラフが作成された後に渡すことができます。 これらのメッセージはすべて、スクリプトインデックスに記載されています。
Help ==>スクリプトインデックス
そして、AxisBoxオブジェクトを探します
動作するはずのコードの変更を次に示します
graph_func = Function( {stackdt, title},
{Default Local},
gb = Graph Builder(
Size( 1342, 905 ),
Variables( X( :names ), Y( As Column( title ) ), Group X( :Type ), Overlay( :GROUPs ) ),
Elements( Box Plot( X, Y, Legend( 11 ) ) ),
Local Data Filter( Add Filter( columns( :Type ), Display( :Type, Size( 160, 30 ), List Display ) ) )
);
If( Contains( title, "error" ),
report(gb)[AxisBox(2)] << min(0.00001) << Max( 0.03 ) << Inc( 1 ) <<MINOR ticks=""></MINOR>再:SendToReport機能のためのグラフビルダー内のIf文返信いただきありがとうございます。私がやっていることでそれが簡単に見えたので、私は2番目の解決策を試しました。動作しますが、Y軸には最小と最大の2点しかありません。Yaxisにスケールを表示するにはどうすればよいですか?再:SendToReport機能のためのグラフビルダー内のIf文JSLとディスプレイ出力の画像を提供してください。
再:SendToReport機能のためのグラフビルダー内のIf文
会社のプライバシーポリシーのため、JSLまたはグラフ全体を実際に提供することはできませんが、X軸は次のようになります。グループY軸には3つのグループがあり、Y軸にはエラーがあります。どのように最小値と最大値だけでなく、y軸上のすべての中間点を表示できるようにしたいと考えています。
また、ページに従って異なるグループを分割すると、これは最初のグラフにのみ適用され、後続のグラフには適用されません。