事前に作成されたスクリプトグラフをApplicationBuilderモジュールに埋め込む方法は?皆さんこんにちは、
アプリケーションビルダーでスクリプトを作成しています。 モジュールの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」ではなく、コントロールパネルが単純に抑制された結果のグラフ(「ShowControl Panel(0)」)を実際に好むためです。これにより、グラフビルダーが非表示になります。ユーザー向けの機能ですが、動的なグラフ(グラブ可能および移動可能な軸など)も可能です。 このようにグラフを埋め込むことができれば、それが私の理想的なルートです。
助けてくれてありがとう。
ありがとう、
エステル
グラフィックススクリプティングRe:事前に作成されたスクリプトグラフをApplication Builderモジュールに埋め込む方法は?こんにちはEstelle-ApplicationBuilder内にいる場合でも、JSLで直接記述している場合でも、レポートのスクリプト作成に役立つ可能性のある1つのソリューションを紹介します。ウィンドウを含まないプラットフォームを起動すると、ウィンドウが自動的に作成されます。「ライブ」プラットフォームにはレポートを1つしか含めることができないため、既存のウィンドウにレポートを追加しようとすると、レポートのコピーが作成されます。これは、画像を作成するよりも少しインタラクティブですが、探しているものでもありません。
以下のスクリプト例では、既存のウィンドウにコンテンツを追加する3つの方法を示しています。結果には、さまざまなレベルの対話性があります。
- 最初のケースでは、ライブGraphBuilderプラットフォームが既存のウィンドウに直接埋め込まれています。プラットフォームは別のウィンドウを作成せず、コピーは行われません。
- 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アプリケーション内では、これらのアプローチのいずれかを使用できるはずです。最初のアプローチでは、アプリで作成したボックスに追加できます。必ず、<< Append(..)メッセージ内でGraph Builderスクリプトを実行して、既に作成したウィンドウに埋め込まれるようにしてください。持ってる。