グラフビルダーで強調表示して対応する行を選択できない皆さんこんにちは、
複数のデータテーブルのグラフビルダーに複数のグラフがあります。 注意すべき2つのこと:
- それらはすべてJSLを使用して作成されました。
- それらのほとんどは、最後のウィンドウを除いてJMPウィンドウに追加されています。
何らかの理由で、最後のグラフビルダープロットのデータのみを強調表示できます(そして、そのテーブルで対応する行を選択しました)。
それはなぜですか、それを修正する方法はありますか?
ありがとう。
データ表他のスクリプティングRe:グラフビルダーで強調表示して対応する行を選択できませんそれは簡単に起こり得ます。 参照JSLをに変更します
gb = dt <<グラフビルダー(.........)Re:グラフビルダーで強調表示して対応する行を選択できませんやあ@txnelson 。
それはまさに私がしていることです。
出来た。 別の関数で追加するのではなく、2回目にプロットを作成したときに直接追加しました。 問題は、すべてのグラフビルダーオブジェクトがさまざまなデータテーブルから取得され、それらの中で変数を使用していたため、式を再実行したときに、JMPが各グラフビルダーに使用するテーブルを認識せず、変数がなかったことが原因である可能性があります。 tが定義されています。
助けてくれてありがとう!
Re:グラフビルダーで強調表示して対応する行を選択できませんGBListには、すでに実行されている出力からの出力へのポインターが含まれています。追加する必要があるのは、Graph Builder(..........)JSLであるため、Displayオブジェクト内で実行されます。
私があなたのスケルトンコードを正しく読んでいる場合、あなたがしていると思うのは、さまざまなグラフビルダーから情報を収集し、その情報を使用して出力を並べ替えることです。この場合、出力を静的ではなく動的にする必要がある場合は、出力表示ウィンドウ内でグラフを2回実行する必要があります。私は過去に何度もそれをしました。私も時々少し違うアプローチを取ります。R2を使用して順序付けを行う場合、私が提案するのは、応答スクリーニングプラットフォームを使用して、目的のR2値を取得し、その結果から、その順序に基づいて目的の出力を生成することです。
Re:グラフビルダーで強調表示して対応する行を選択できませんグラフビルダーオブジェクト自体を追加しようとしましたが、次のエラーが発生します。
Not a display in access or evaluation of 'Append' , Append( ReorderedPlotBoxList[i] ) /*###*/
Re:グラフビルダーで強調表示して対応する行を選択できません問題は、グラフビルダーオブジェクトではなく、グラフビルダーのレポートを追加していることです。以下のスクリプトの結果を見てください。追加されたレポートが静的なグラフになり、埋め込まれたオブジェクトはそうではないことがわかります。
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
mygb = Expr(
gb = Graph Builder(
Size( 528, 456 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Overlay( :sex ) ),
Elements( Line( X, Y, Legend( 7 ) ) )
);
);
mygb;
nw = new window("Report",);
nw << append(report(gb));
nw << append(mygb);
Re:グラフビルダーで強調表示して対応する行を選択できませんやあ@txnelsonと@Thierry_S 。
返信いただきありがとうございます。 何らかの理由で、私の以前の返信は不正使用としてマークされていたので、ここに書き直します:
残念ながら、NDAのため、スクリプト全体またはプロットを共有することはできませんが、詳細を提供することはできます。
私はこの関数を使用してウィンドウを作成しています:
CreateResultsWindow = Function(
// Inputs
{Title},
// Local variables
{
Window, ReturnList,
OutLineBox1, BorderBox1, LineUpBox1
},
Window = NewWindow(Title,
OutLineBox1 = OutLineBox(
Title,
BorderBox1 = BorderBox(
Left(40), Right(40), Top(40), Bottom(40), Sides(30),
LineUpBox1 = LineUpBox(NCol(2));
);
);
);
ReturnList = {};
InsertInto(ReturnList, LineUpBox1);
EvalList ( ReturnList );
);
次に、forループでGraph Builderオブジェクトを作成し、それらをリストに追加します。
GB = GraphBuilder(...);
InsertInto(GBList, GB);
次に、次の関数を呼び出して、ウィンドウ(ラインナップボックス)の表示オブジェクトにそれらをアタッチします。
AppendPlotBasedOnDescendingValue = Function(
// Inputs
{PlotBoxList, ValueList, AppendBox},
// Local variables
{i, RankList, ReorderedPlotBoxList},
// Vector of indices used as subscript into original list
RankList = RankIndex(ValueList);
// Reorder plots based on values
ReorderedPlotBoxList = PlotBoxList[RankList];
// Plot by descending
For(i=NItems(ReorderedPlotBoxList), i>=1, i--,
AppendBox << Append(Report(ReorderedPlotBoxList[i]));
ReorderedPlotBoxList[i] << CLoseWindow;
);
);グラフビルダーリストとR^2値のリストを使用して関数を呼び出します。
AppendPlotBasedOnDescendingValue(GBList, R2List, LineupBox);
動作しますが、テーブル/グラフビルダーでデータを選択/強調表示できません。
ありがとう。
Re:グラフビルダーで強調表示して対応する行を選択できませんありがとう@txnelsonと@Thierry_S返事のために。
残念ながら、NDAの理由により、スクリプト全体またはプロットを共有することはできませんが、可能な場合は詳細を提供できます。
ウィンドウは次のようになります。
CreateResultsWindow = Function(
// Inputs
{Title},
// Local variables
{
Window, ReturnList,
OutLineBox1, BorderBox1, LineUpBox1
},
Window = NewWindow(Title,
OutLineBox1 = OutLineBox(
"Outline Box 1",
BorderBox1 = BorderBox(
Left(40), Right(40), Top(40), Bottom(40), Sides(30),
LineUpBox1 = LineUpBox(NCol(2));
);
);
);
ReturnList = {};
InsertInto(ReturnList, OutLineBox1);
InsertInto(ReturnList, LineUpBox1);
EvalList ( ReturnList );
);
この関数を複数のタイプのプロットに対して複数回呼び出し、次のようにラインナップボックスに追加しています。
複数のGBオブジェクトを作成し、それらをGBリストに挿入します
GB = DT << GraphBuilder(...);
InsertInto(GBList, GB);
いくつかの値(私の場合はR ^ 2)に基づいてそれらを追加します。
AppendPlotBasedOnDescendingValue(GBList, R2List, LineUpBox1);
AppendPlotBasedOnDescendingValue = Function(
// Inputs
{PlotBoxList, ValueList, AppendBox},
// Local variables
{i, RankList, ReorderedPlotBoxList},
// Vector of indices used as subscript into original list
RankList = RankIndex(ValueList);
// Reorder plots based on values
ReorderedPlotBoxList = PlotBoxList[RankList];
// Plot by descending
For(i=NItems(ReorderedPlotBoxList), i>=1, i--,
AppendBox << Append(Report(ReorderedPlotBoxList[i]));
ReorderedPlotBoxList[i] << CLoseWindow;
);
);
正しく追加されますが、データテーブル/プロットを選択/強調表示できません。
だからあなたの質問に
@Thierry_Sグラフィック要素を使っていると思います(ラインナップボックス)
ありがとう。
Re:グラフビルダーで強調表示して対応する行を選択できませんやあ、
として@txnelson述べたように、これはあなたが提供した情報であなたの問題を診断することはほとんど不可能です。 この段階で私が考えることができる唯一のことは、グラフを新しいウィンドウに追加する方法で発生する可能性のある問題です。グラフィック要素キャプチャを使用しますか、それともグラフ全体を新しいウィンドウに追加しますか? 前者は、テーブルへの接続を削除します。
一番、
TSRe:グラフビルダーで強調表示して対応する行を選択できません実際の診断を実際に行うのに十分な情報(詳細)を提供していません。 スクリプトのコピーと出力の画像は本当に役立ちます