事前に作成されたスクリプト化されたグラフを Application Builder モジュールに埋め込む方法は?皆さんこんにちは、
Application Builder でスクリプトを作成しています。 モジュールの 1 つに、事前に作成されたグラフを表示するように設定する目的でグラフ ボックスがありますが、うまくいきません。 私はもともと、作成済みのグラフをモジュールウィンドウに埋め込むのが最も簡単だと考えていたので、グラフボックスをプレースホルダーとして使用して、次のようなことを試みました。
graphBox << Visibility("Collapse");
panelBox << Append( /*graph*/ ) );...しかし、これは機能していません。 潜在的に最も簡単な方法は、実際にさまざまなグラフ項目をグラフ ボックスに個別にスクリプト化することですか? 私はJSLにかなり慣れていないので、私のアプローチ/構文が何らかの形で間違っているに違いないことは知っていますが、これを行うための最良/最も簡単な方法が何であるかはわかりません!
必要なグラフを作成するためのコード (親切なユーザーのおかげで私が投稿した別の質問) は:
Names Default To Here(1);
datafile = Open( "Data.xlsx" );
x_col = Column(datafile, 1);
y_cols = (datafile << Get Column Names())[2::N Cols(datafile)];
var_expr = EvalExpr(
Variables(X(Expr(x_col))
));
var_line = Expr(Line(X));
For Each({col, idx}, y_cols,
y_expr = Expr(Y(Position(1)));
Insert Into(y_expr, NameExpr(col), 1);
Insert Into(var_expr, Name Expr(y_expr));
yline_expr = Parse("Y("||char(idx)||")");
Insert Into(var_line, Name Expr(yline_expr));
);
graphbuild = Eval(Substitute(
Expr(
graphbuild = datafile << Graph Builder(
Size(838, 391),
Show Control Panel(0),
vvv,
Elements(yyy)
)
),
Expr(vvv), Name Expr(var_expr),
Expr(yyy), Name Expr(var_line)
));
/*gb_image = graphbuild << get picture;
graphbuild << Close Window;
New window("time-series plot",
gb_image
);*/このコードの最後の部分をコメント アウトしました。これは、グラフ ビルダーが非表示になるため、「<< Get Picture」ではなく、コントロール パネルを単に非表示にした結果のグラフ (「Show Control Panel(0)」) を実際に好むためです。ユーザー向けの機能ですが、動的グラフ (グラブ可能および移動可能な軸など) を引き続き使用できます。 このようにグラフを埋め込むことができれば、それが私の理想的なルートです。
助けていただければ幸いです。
ありがとうございました、
エステル
グラフィックスクリプティングRe: 作成済みのスクリプト化されたグラフを Application Builder モジュールに埋め込む方法は?こんにちは Estelle - Application Builder 内にいるか、JSL で直接記述しているかに関係なく、レポートのスクリプト作成に役立つソリューションを 1 つ紹介します。ウィンドウを含まないプラットフォームを起動すると、ウィンドウが作成されます。「ライブ」プラットフォームは 1 つのレポートしか持てないため、レポートを既存のウィンドウに追加しようとすると、レポートのコピーが作成されます。これは画像を作成するよりも少しインタラクティブですが、探しているものでもありません。
以下のサンプル スクリプトでは、既存のウィンドウにコンテンツを追加する 3 つの方法を示しています。結果にはさまざまなレベルの対話性があります。
- 最初のケースでは、ライブのグラフ ビルダー プラットフォームが既存のウィンドウに直接埋め込まれます。プラットフォームは別のウィンドウを作成せず、コピーも行われません。
- 2 番目のウィンドウでは、レポートのコピーが追加されますが、対話性は低くなります。これは、プラットフォーム オブジェクトを含まない、レポート自体のコピーです。データ テーブルには接続されていません。
- 3 番目のウィンドウに、対話性が最も低いグラフ ビルダーの画像を追加します。
// Create an empty window first
New Window("Interactive Report",
panel = Panel Box("Interactive Report")
);
Wait(2);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Append a Graph Builder to the existing window
// This report will be entirely interactive
// Axes can be changed, and points can be selected
panel << Append(gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
));
// We could try to create windows from existing platforms
// This will lose some interactivity
// Axes can change, but the selection is fixed
New Window("Report Copy",
panel2 = Panel Box("Report Copy",
)
);
Wait(2);
panel2 << Append(Report(gb)); // creates a copy of the report
// Or we could take a picture of the report
// This is the least interactive result - nothing can change
New Window("Report Picture",
panel3 = Panel Box("Report Picture",
)
);
Wait(2);
panel3 << Append(gb << Get Picture);<BR />
JMP アプリケーション内では、これらのアプローチのいずれかを使用できる必要があります。最初のアプローチでは、アプリで作成した任意のボックスに追加できます。 <